Javascript 与mapDispatchToProps相比,注入actionCreators有什么好处?
我略读了一遍,试图理解这个例子: 注入TODO和所有动作创建者 为什么这里不需要mapDispatchToProps?调度在哪里 我了解actions、dispatch和mapDispatchToProps,但我对Action创建者和上述语法有点模糊。您可以传递对象或函数: 如果传递了一个对象,则假定其中的每个函数都是Redux操作创建者。Connect将为您绑定行动处理器 然后在组件中Javascript 与mapDispatchToProps相比,注入actionCreators有什么好处?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我略读了一遍,试图理解这个例子: 注入TODO和所有动作创建者 为什么这里不需要mapDispatchToProps?调度在哪里 我了解actions、dispatch和mapDispatchToProps,但我对Action创建者和上述语法有点模糊。您可以传递对象或函数: 如果传递了一个对象,则假定其中的每个函数都是Redux操作创建者。Connect将为您绑定行动处理器 然后在组件中 this.props.someActionCreator(); 如果函数被传递,它将被分派。这取决于您返回
this.props.someActionCreator();
如果函数被传递,它将被分派。这取决于您返回一个对象,该对象以某种方式使用dispatch以您自己的方式绑定动作创建者。您可以使用Redux中的bindActionCreators帮助程序。
如果将ownProps指定为第二个参数,则其值将是传递给组件的props,并且只要组件接收到新的props,就会重新调用mapDispatchToProps
function mapDispatchToProps(dispatch) {
return { actions: bindActionCreators(actionCreators, dispatch) }
}
如果省略它,默认实现只是将分派注入组件的道具中
然后在组件中:
this.props.dispatch(someActionCreator());
因此,注入ActionCreator对象而不是函数的好处是,将ActionCreator传递给组件的形式更方便、更简洁我明白了。。。将*作为actionCreators从“/actionCreators”导入也很重要;实际上,将actionCreators设置为一个对象,该对象的函数在./actionCreators中导出为属性。因此,在本例中,这是第一个实现的示例
this.props.someActionCreator();
this.props.dispatch(someActionCreator());