我在我的应用程序中使用react-redux。我有一个播放器,我使用rangeliderplugin为videojs。我有一个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);
});
当我滑动滑块时,会出现这样的错误。
答案 0 :(得分:2)
您需要在此处使用胖箭头,或使用您在上面声明的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);
});