componentDidMount 中的操作不起作用
actions not working inside componentDidMount
我在我的应用程序中使用了 react-redux。我有一个播放器,我使用了 videojs 的 rangesliderplugin。我有一个 actioncreater,当我在视频时间轴中滑动滑块时应该触发它。 https://github.com/danielcebrian/rangeslider-videojs 上提供了一个插件。我想从此事件函数向我的操作传递一个值。这是我的代码
newMarkerTime 是我的动作
class PlayerLogic extends Component {
constructor() {
super();
this.state = {
player: {}
};
}
componentDidMount() {
var self = this;
var options ={hidden:false};
var player = videojs(this.refs.video, this.props.options).ready(function () {
self.player = this;
self.player.on('play', self.handlePlay);
});
player.rangeslider(options);
player.on("sliderchange",function() {
values = player.getValueSlider();
this.props.newMarkerTime(values);
});
当我滑动滑块时,会出现这样的错误。
这里需要使用粗箭头,或者使用上面声明的self
player.on("sliderchange",function() {
values = player.getValueSlider();
// this refers to player
this.props.newMarkerTime(values);
// self refers to your component
self.props.newMarkerTime(values);
});
// use a fat arrow instead
player.on("sliderchange", () => {
values = player.getValueSlider();
// this refers to your react component
this.props.newMarkerTime(values);
});
我在我的应用程序中使用了 react-redux。我有一个播放器,我使用了 videojs 的 rangesliderplugin。我有一个 actioncreater,当我在视频时间轴中滑动滑块时应该触发它。 https://github.com/danielcebrian/rangeslider-videojs 上提供了一个插件。我想从此事件函数向我的操作传递一个值。这是我的代码
newMarkerTime 是我的动作
class PlayerLogic extends Component {
constructor() {
super();
this.state = {
player: {}
};
}
componentDidMount() {
var self = this;
var options ={hidden:false};
var player = videojs(this.refs.video, this.props.options).ready(function () {
self.player = this;
self.player.on('play', self.handlePlay);
});
player.rangeslider(options);
player.on("sliderchange",function() {
values = player.getValueSlider();
this.props.newMarkerTime(values);
});
当我滑动滑块时,会出现这样的错误。
这里需要使用粗箭头,或者使用上面声明的self
player.on("sliderchange",function() {
values = player.getValueSlider();
// this refers to player
this.props.newMarkerTime(values);
// self refers to your component
self.props.newMarkerTime(values);
});
// use a fat arrow instead
player.on("sliderchange", () => {
values = player.getValueSlider();
// this refers to your react component
this.props.newMarkerTime(values);
});