在Redux中,store.dispatch(),connect()和bindActionCreators()之间的关系是什么

时间:2016-09-12 23:23:57

标签: reactjs react-redux

dispatch()connect()bindActionCreators()之间的区别是什么?

我应该在哪些情况下使用它们?

感谢

1 个答案:

答案 0 :(得分:2)

  • dispatch - 调度操作以触发redux商店的更改。执行此更改的逻辑在reducer中。

  • connect - 在将高阶组件connect()应用于此特定组件之前,React的特定组件状态与redux的存储无关。 为了使redux存储和响应状态协同工作,您需要连接。组件连接到redux的商店后,它可以侦听商店中的更改。如果已分派操作,redux存储更改,并且因为您的组件已连接到存储并侦听这些更改,则需要重新呈现。但是,有一个小问题 - 您还需要指定您的组件将自己重新渲染的商店更改(mapStateToProps)以及允许您触发组件的状态更改(mapDispatchToProps)

  • bindActionCreators - 包装动作创建者(创建动作的功能)进入dispatch()调用,以便您可以像这样使用它:fancyActionCreator()而不是必须将它包装在dispatch(fancyActionCreator())中。

  

bindActionCreators的唯一用例是当你想将一些动作创建者传递给一个不知道Redux的组件时,你不想将dispatch或Redux存储传递给它。