当我们可以使用this.props.dispatch来调度动作时,mapDispatchToProps有什么用



我已经使用@connect注释一段时间了,并决定切换到mapStateToPropsmapDispatchToProps

我可以mapStateToProps将商店映射到组件的道具,但想知道当我可以在任何地方调用this.props.dispatch( xxx )时,mapDispatchToProps有什么意义。

我也看到一些反应存储库,它们也不使用mapDispatchToProps

  • https://github.com/Hashnode/mern-starter
  • https://github.com/andrewngu/sound-redux

对不起,如果这听起来像是一个初学者问题。

是的,您当然可以直接在组件中使用props.dispatch()。 但是,该组件现在"知道"它是Redux应用程序的一部分,因为它显式尝试"调度"东西。

另一方面,如果您始终使用动作创建器函数,则现在组件只是调用类似 this.props.doSomeThing() . 它实际上并不"知道"它在Redux应用程序中,因此更容易重用。

我刚刚在什么时候在react/redux中使用bindActionCreators?中回答了一个类似的问题,并在Idiomatic Redux上写了一篇关于这个主题的更长的博客文章:为什么要使用动作创建者?。

最新更新