Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与mapDispatchToProps相比,注入actionCreators有什么好处?_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 与mapDispatchToProps相比,注入actionCreators有什么好处?

Javascript 与mapDispatchToProps相比,注入actionCreators有什么好处?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我略读了一遍,试图理解这个例子: 注入TODO和所有动作创建者 为什么这里不需要mapDispatchToProps?调度在哪里 我了解actions、dispatch和mapDispatchToProps,但我对Action创建者和上述语法有点模糊。您可以传递对象或函数: 如果传递了一个对象,则假定其中的每个函数都是Redux操作创建者。Connect将为您绑定行动处理器 然后在组件中 this.props.someActionCreator(); 如果函数被传递,它将被分派。这取决于您返回

我略读了一遍,试图理解这个例子:

注入TODO和所有动作创建者

为什么这里不需要mapDispatchToProps?调度在哪里

我了解actions、dispatch和mapDispatchToProps,但我对Action创建者和上述语法有点模糊。

您可以传递对象或函数:

如果传递了一个对象,则假定其中的每个函数都是Redux操作创建者。Connect将为您绑定行动处理器

然后在组件中

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());