我有一个简单的 React 应用程序,带有视频播放器和显示视频数据的图表。两者都在自己的顶层组件中:
class App extends Component {
...
render() {
return (
<div className="App">
<VideoDisplay .../>
<MetricsDisplay .../>
</div>
)
}
}
Inside是我想要控制VideoDisplay.js
的一个元素,特别是通过寻找它的播放位置,我可以使用. 我想从元素中控制它:如果我点击图表,我希望视频搜索到点击的时间。但要做到这一点,似乎我必须在它收到来自的点击时调用一个函数。但这是必要的而不是声明性的,而且确实我在 React 中实现它时遇到了麻烦。甚至可能吗?我怎么能告诉一个元素中的视频寻找,由来自同级元素的点击触发?<video>
videoElement.currentTime=seekToTime
MetricsDisplay
VideoDisplay.js
App.js
MetricsDisplay.js
我有一个解决方法,我将发布作为答案,但我非常相信从设计角度来看它是非常次优的,并且会导致代码维护问题。那么有什么更好的方法呢?做这样的事情的“反应”方式是什么?
见所附截图:当点击右边的图表时,视频应该搜索到点击的时间点。