我在我的反应应用程序中使用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()"不是一个功能
答案 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
}