我的目标是根据视频的播放时间来计算子组件的可见性。这个名为 InfoElement 的组件是通过 map 方法呈现的。
{this.props.sceneNavigator.viroAppProps.tours[this.state.tourId].scenes[this.state.sceneId].infoElements.map((infoElement, key) => {
return (
<InfoElement
content={{uri: infoElement.poiImage}}
startingTime = {infoElement.startingTime}
endingTime = {infoElement.endindTime}
contentCardScale={[5, 5, 5]}
position={polarToCartesian(infoElement.coordinate)}/>
)
})}
在父级内部,有一个回调,_onUpdateTime(currentPlaybackTimeInSeconds, totalPlayBackDurationInSeconds)
当视频的当前播放位置发生变化时调用。
<Viro360Video
source={{uri:this.props.sceneNavigator.viroAppProps.tours[this.state.tourId].scenes[this.state.sceneId].backgroundSource}}
onBufferEnd={this.onLoadEnded}
onUpdateTime={this._onUpdateTime}
rotation={[0, 0, 0]}
onError={this.onError}/>
_onUpdateTime(currentPlaybackTimeInSeconds, totalPlayBackDurationInSeconds) {
this.setState({
visible : false,
});
console.log(currentPlaybackTimeInSeconds);
}
我想要做的是比较currentPlaybackTimeInSeconds
with startingTime
andendingTime
并使 infoElement 组件仅在currentPlaybackTimeInSeconds
介于startingTime
and之间时可见endingTime
。我的问题是我没有一个 infoElement,而是一个列表,所以我不知道如何引用它们中的每一个。这个想法是更新他们每个人的状态,但我不知道该怎么做。有什么建议吗?感谢所有会回答我的人。