我已经使用@connect
注释一段时间了,并决定切换到mapStateToProps
和mapDispatchToProps
。
我可以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上写了一篇关于这个主题的更长的博客文章:为什么要使用动作创建者?。