通过阅读redux docs,特别是在react-redux
上,使用简单的actionCreators对象将动作创建者绑定到调度函数上,将其作为 2nd < / strong> redux的connect
的参数。
但是,如果我只是传递该对象或手动绑定动作创建者,则this.props
为空(计数除外)。我没有increment
,decrement
,reset
或dispatch
的道具。在箭头函数中手动调用dispatch使这些函数出现在道具中。
export const increment = () => ({ type: "INCREMENT" });
const mapDispatchToProps = {
increment
};
export default connect(
mapStateToProps,
// WORKS: ******************** (manually calling action creator and dispatching new action)
dispatch => ({
increment: () => dispatch(increment())
})
// DOES NOT WORK: ************ (passing as simple 'actionCreators' object)
// mapDispatchToProps,
// DOES NOT WORK EITHER: ***** (manually binding action creators to dispatch)
// dispatch => bindActionCreators(mapDispatchToProps, dispatch)
)(Counter);
我已经简化了上面的代码,但是代码沙箱是here。
答案 0 :(得分:1)
感谢Emile Bergeron的评论。
我有一个循环依赖项。我的index.js
正在从Counter.js
导入组件。 Counter.js
中的组件正在从index.js
导入动作创建者。一旦将动作重构到一个单独的文件中,它就起作用了。