Reactjs 当道具更新时对组件调用自定义方法
我有一个YouTubeiFrame react组件,它呈现一个空div,然后使用componentDidMount将YouTube iframe播放器放到该div中。一切正常。我在使用播放器的组件上定义了一个cueVideo方法 提示新视频的API:Reactjs 当道具更新时对组件调用自定义方法,reactjs,redux,Reactjs,Redux,我有一个YouTubeiFrame react组件,它呈现一个空div,然后使用componentDidMount将YouTube iframe播放器放到该div中。一切正常。我在使用播放器的组件上定义了一个cueVideo方法 提示新视频的API: cueVideo(videoId) { this.player.cueVideoById(videoId) } 在“我的应用”的不同位置,您可以单击按钮或其他操作来指示您要播放新视频。执行此操作时,“currentVideo”状态将通过red
cueVideo(videoId) {
this.player.cueVideoById(videoId)
}
在“我的应用”的不同位置,您可以单击按钮或其他操作来指示您要播放新视频。执行此操作时,“currentVideo”状态将通过redux更新,因此YouTubeiFrame组件将新的视频id作为更新的道具接收
我的问题是如何调用上面的cueVideo方法来响应更新的道具。我考虑过使用shouldComponentUpdate将这个.props.currentVideo与下一个props进行比较
但是concious这个方法实际上应该返回true/false,因此可以调用render函数。我只想在当前视频道具更改时调用cueVideo-我真的不需要重新渲染
最好的方法是什么
我只想在当前视频道具更改时调用cueVideo-我真的不需要重新渲染
收到新道具后,React将自动调用render来更新组件。将所有更新刷新到DOM后,React还将调用组件上的componentDidUpdate,以使您有机会响应更改。正如上面所说:
当组件被更新时,利用这个机会在DOM上进行操作
我建议这是根据需要调用代码的最佳位置
我只想在当前视频道具更改时调用cueVideo-我真的不需要重新渲染
收到新道具后,React将自动调用render来更新组件。将所有更新刷新到DOM后,React还将调用组件上的componentDidUpdate,以使您有机会响应更改。正如上面所说:
当组件被更新时,利用这个机会在DOM上进行操作
我建议这是根据需要调用代码的最佳位置。this.player是否在组件中?是的,this.player是组件的一部分。为什么不在渲染方法的顶部调用它?this.player.cuevideobyid this.props.videoId。渲染将被调用,因为状态发生了更改。除非必要,否则虚拟DOM不会进行任何DOM更新。this.player是否在组件中?是的,this.player是组件的一部分。为什么不在render方法的顶部调用它?this.player.cuevideobyid this.props.videoId。渲染将被调用,因为状态发生了更改。除非必要,否则虚拟DOM不会进行任何DOM更新。