[英]Redux & React: My reducer don't recognize action with setInterval
我正在寻找一种使用 React 和 Redux 在我的项目中每秒创建一个动作的方法。 通过这种方式,我可以到达,直到我采取行动,但我的减速器无法识别它。
class liftComponent extends React.Component {
constructor(props){
super(props);
}
componentDidMount(){
setInterval(function(){
handlerPosition()
}, 1000);
}
render() {}
}
const mapStateToProps = state => ({
currentLevel: state
})
const mapDispatchToProps = (dispatch) => ({
handlerPosition: (currentLevel) => dispatch(handlerPosition),
})
export default connect(mapStateToProps,mapDispatchToProps)(liftComponent);
您已经完成了大部分工作,至少在 Github 上的代码中是这样。 mapDispatchToProps
将创建的函数作为 props 注入,因此在类组件中像this.props.callUp(i)
一样访问它们。
componentDidMount(){
// Probably should do something better with intervalId.
// setState()?
this.intervalId = setInterval(
() => {
this.props.callUp({thisLevel: 10000000});
// or this.props.handlerPosition() or whatever.
},
1000
);
}
我在使用带有钩子的功能组件时遇到了同样的问题。 我认为问题出在 mapDispatchToProps 函数中。
你必须改变这个:
handlerPosition: (currentLevel) => dispatch(handlerPosition)
对此:
handlerPosition: () => dispatch(handlerPosition())
我希望我的解决方案适合您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.