React redux bindActionCreators的用法
我有一个文件在root.js的action目录下。 Root.js将编译所有其他行动中,和我一起bindActionCreatorsReact redux bindActionCreators的用法
export const all = (store) => {
AUTH: bindActionCreators(AUTH.actions, store.dispatch),
....: .....
}
从我了解到其绑定,bindActionCreators是汽车的调度操作的目的。 如果是这样的话,那么我如何从智能组件访问它?
我看到dispatch(action)这样的东西。但从现在我已经将其绑定到全球,我不认为我需要指定调度了。我该怎么做,或者有什么我误解的部分? 谢谢
bindActionCreators
- 将创建一个动作对象,每个动作都包装在dispatch中。
将它们作为参考传递给不应该知道关于redux
或dispatch
的任何内容的非连接组件是很好的。从DOCS
报价:
唯一的用例bindActionCreators是当你想传递一些 行动创下来就是不知道终极版的一个组成部分,而你 不想通过派遣或Redux商店。
所以,如果你想要的连接成分通过动作创作者一个愚蠢的组件,您可以通过bindActionCreators
设置一个对象,并使用道具哑分量通过。
实施例:
const myActionCreators = bindActionCreators(Auth.myActions, dispatch)
<DumbComponent {...myActionCreators} />
建议的方法是让每个连接组件文件导入它所需要的动作的创造者,并使用由connect
支持“对象简写”:
import {addTodo, toggleTodo} from "./todoActions";
const actions = {addTodo, toggleTodo};
export default connect(null, actions)(TodoList);
// each TodoList instance now has this.props.addTodo and
// this.props.toggleTodo, which will dispatch actions when called.
辉煌。 这是我正在寻找.. 我认为这种方法更易读易维护,而不是让每个智能组件执行自己的调度 –
,但我不能让它工作.. 我同意这个工作流程虽然 –
你能澄清一下“不起作用”吗?您是否实际渲染组件的_connected_版本? – markerikson
意思,我不再需要指定mapDispatchToProps? –
我需要mapStateToProps吗?或者它已经通过连接自动连接到商店?对不起,问..因为我还在追赶的概念反应终极版 –
你'mapDispatchToProps'返回'bindActionCreators'像'功能mapDispatchToProps(派遣){ 回报bindActionCreators(行动,派遣) } ' –