何时在我的React / Redux应用程序中使用store.dispatch()?

时间:2017-06-25 19:18:36

标签: reactjs redux

我在我的React / Redux应用程序中使用mapDispatchToProps。

function mapDispatchToProps(dispatch) {
    return bindActionCreators( { fetchUsers }, dispatch);
}

export default connect(mapStateToProps, mapDispatchToProps)(SearchBar);

我看到store.dispatch()在容器中使用,我可以使用它而不是mapDispatchToProps吗?我不完全理解 store.dispatch(),我应该在哪里使用它?

2 个答案:

答案 0 :(得分:1)

您想使用connectmapDispatchToProps。这些使您可以访问调度并将调用封装在一个地方。

store.dispatch如果你的某个地方mapDispatchToProps不起作用,那就很有用,但我会避免这种情况,因为它会不必要地使你的代码复杂化。

答案 1 :(得分:1)

如果您在服务器上呈现应用程序,这将无效,因为您希望在服务器上为每个请求提供不同的store实例。这就是Redux文档不推荐这种方法的原因。

来自 bindActionCreators 的文档,

  

您可能会问:为什么我们不将动作创建者绑定到商店   实例,就像在经典的Flux中一样?问题是这个   对于需要在服务器上呈现的通用应用程序,它将无法正常工作。   您很可能希望每个请求都有一个单独的商店实例   您可以使用不同的数据准备它们,但绑定动作创建者   在他们的定义中意味着你被困在一家商店   所有请求的实例。

@Dan还发表评论 here 建议自己使用connect()方法。