当子组件不使用 react-redux connect 包裹,触发 redux 中的 action 时,使用 bindActionCreators 方法,第一个参数是 action creator ,第二个是从 props 获取的 dispatch ,返回值为 每个被 dispatch 包装过的 action creator ,子组件可直接调用该方法
摘抄自官方文档 https://www.redux.org.cn/docs/api/bindActionCreators.html
bindActionCreators(actionCreators, dispatch)
把一个 value 为不同 action creator 的对象,转成拥有同名 key 的对象。同时使用 dispatch
对每个 action creator 进行包装,以便可以直接调用它们。
一般情况下你可以直接在 Store
实例上调用 dispatch
。如果你在 React 中使用 Redux,react-redux会提供 dispatch
函数让你直接调用它 。
惟一会使用到 bindActionCreators
的场景是当你需要把 action creator 往下传到一个组件上,却不想让这个组件觉察到 Redux 的存在,而且不希望把 dispatch
或 Redux store 传给它。
为方便起见,你也可以传入一个函数作为第一个参数,它会返回一个函数。