无法读取未定义的属性“getChild”

时间:2017-10-17 11:00:27

标签: javascript reactjs

我正在研究一个反应应用程序。我试图从我的渲染函数调用一个函数。我调用的函数使用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);
});

1 个答案:

答案 0 :(得分:1)

您不应该使用render功能执行操作。它的目的是根据一些数据呈现内容。

它返回undefined的原因是你在render方法中,所以基本上什么都没有渲染。在渲染功能完成之前,播放器不存在。

相反,您应该在componentDidMount方法中处理这样的内容,该方法在每render个结束后调用。

componentDidMount() {
    if (this.props.sentance_selected_reducer.flag) {
        this.handlePlay();
    }
}