类型错误:无法读取未定义的属性currentTime

时间:2017-09-09 07:19:53

标签: javascript reactjs video.js

我在我的反应应用程序中使用Videojs。我正在尝试设置videojs播放器的当前时间。但我收到的错误是"无法读取未定义的属性currentTime"。这是我试图做的方式

var player;

class DummyPlayer extends Component {
    constructor() {
        super();
        this.state = {
        player: {},
        tags: [{
            category: "Compliance",
            stopTime: 10,
            text: "Car",
            time: 0
        }]
    };
    }


    componentDidMount = ()=> {
        this.init()
    }

    init = ()=> {
        this.initVideoJS()
    }


    initVideoJS = ()=> {
        debug('Init VideoJS')
        const options = {
            fluid: true,
            preload: false,
            autoplay: false,
            controls: true,
            aspectRatio: "16:9"
        }

        player = this.video = videojs(this.video_el, options)

        this.setState({player:player})
        player.on("timeupdate", () => {
            currentTime = player.currentTime();

        });

    }

    jumpToSpecificMarker(time) {
        console.log("inside jump")
        player.currentTime()    // this is where I am getting error
    }

从jumpToSpecificMarker方法访问currentTime时遇到错误。

我也试过这样做

jumpToSpecificMarker(time) {
            console.log("inside jump")
            this.state.player.currentTime()    // this is where I am getting error
        }

这给我错误说" this.state.player.currentTime()"不是一个功能

2 个答案:

答案 0 :(得分:0)

该类的范围是

你不能从班级外面找到一个var。在这种情况下,`球员在课外宣布。

因此,如果你需要一个类变量,可以在构造函数中添加this.variable,或者像在构造函数中一样添加状态对象。或者,如果此变量需要来自外部源,则通过在父组件中声明prop来引入它。

答案 1 :(得分:0)

使用jumpToSpecificMarker方法的箭头功能,以便它可以保持this的范围

jumpToSpecificMarker = (time) => {
        console.log("inside jump")
        this.state.player.currentTime()    // this is where I am getting error
    }