我在我的React / Redux应用程序中使用mapDispatchToProps。
function mapDispatchToProps(dispatch) {
return bindActionCreators( { fetchUsers }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(SearchBar);
我看到store.dispatch()在容器中使用,我可以使用它而不是mapDispatchToProps吗?我不完全理解 store.dispatch(),我应该在哪里使用它?
答案 0 :(得分:1)
您想使用connect
和mapDispatchToProps
。这些使您可以访问调度并将调用封装在一个地方。
store.dispatch
如果你的某个地方mapDispatchToProps
不起作用,那就很有用,但我会避免这种情况,因为它会不必要地使你的代码复杂化。
答案 1 :(得分:1)
如果您在服务器上呈现应用程序,这将无效,因为您希望在服务器上为每个请求提供不同的store
实例。这就是Redux
文档不推荐这种方法的原因。
来自 bindActionCreators 的文档,
您可能会问:为什么我们不将动作创建者绑定到商店 实例,就像在经典的Flux中一样?问题是这个 对于需要在服务器上呈现的通用应用程序,它将无法正常工作。 您很可能希望每个请求都有一个单独的商店实例 您可以使用不同的数据准备它们,但绑定动作创建者 在他们的定义中意味着你被困在一家商店 所有请求的实例。
@Dan还发表评论 here 建议自己使用connect()
方法。