我正在研究一个反应应用程序。我试图从我的渲染函数调用一个函数。我调用的函数使用getChild方法。我收到一个错误,说“无法读取属性”getChild“未定义”。如果我不从渲染方法中调用它,它工作正常。
这是函数以及我如何调用它
handlePlay() {
//this.props.playButtonClickedActio
console.log("handle play ")
console.log("hii" + player.getChild('ControlBar').getChild('ProgressControl').currentWidth())
}
render() {
if (this.props.sentance_selected_reducer.flag) {
this.handlePlay();
}
播放器在componentDidMount
中定义如下this.video = player = videojs(this.video_el, options).ready(function () {
self.player = this;
self.player.on('play', that.handlePlay);
});
答案 0 :(得分:1)
您不应该使用render
功能执行操作。它的目的是根据一些数据呈现内容。
它返回undefined的原因是你在render方法中,所以基本上什么都没有渲染。在渲染功能完成之前,播放器不存在。
相反,您应该在componentDidMount
方法中处理这样的内容,该方法在每render
个结束后调用。
componentDidMount() {
if (this.props.sentance_selected_reducer.flag) {
this.handlePlay();
}
}