dispatch()
,connect()
和bindActionCreators()
之间的区别是什么?
我应该在哪些情况下使用它们?
感谢
答案 0 :(得分:2)
dispatch - 调度操作以触发redux商店的更改。执行此更改的逻辑在reducer中。
connect - 在将高阶组件connect()应用于此特定组件之前,React的特定组件状态与redux的存储无关。 为了使redux存储和响应状态协同工作,您需要连接。组件连接到redux的商店后,它可以侦听商店中的更改。如果已分派操作,redux存储更改,并且因为您的组件已连接到存储并侦听这些更改,则需要重新呈现。但是,有一个小问题 - 您还需要指定您的组件将自己重新渲染的商店更改(mapStateToProps)以及允许您触发组件的状态更改(mapDispatchToProps)
bindActionCreators - 包装动作创建者(创建动作的功能)进入dispatch()调用,以便您可以像这样使用它:fancyActionCreator()而不是必须将它包装在dispatch(fancyActionCreator())中。
bindActionCreators的唯一用例是当你想将一些动作创建者传递给一个不知道Redux的组件时,你不想将dispatch或Redux存储传递给它。