为什么要使用" this.props.dispatch"而不是" store.dispatch"直接在Redux?

时间:2015-10-19 18:43:47

标签: reactjs redux

直接使用store.dispatch是否有任何不利之处?

在我看来,它更容易打电话(因为它可供所有儿童组件使用),到目前为止我的测试中,我还没有找到差异。

谢谢!

2 个答案:

答案 0 :(得分:51)

universal apps中,您希望每个请求都有不同的商店实例。如果您只是将商店从某个模块导出为单例,那么您将很难添加服务器呈现。

这就是为什么我们从不鼓励在文档中使用单件商店,并且总是鼓励您使用<Provider>通过React context将其传递到层次结构中。这使得存储可供消费组件使用,而不会使其成为单例。

至于为什么来自React Redux的connect()通过dispatch作为道具而不是store本身 - 因为你并不真正需要store }本身在连接的组件中。订阅和阅读状态由connect()完成,因此您只需在组件中dispatch()

答案 1 :(得分:1)

通常我发现商店在顶级模块中初始化,然后通过react-redux连接功能在较低级别的模块中使用。

这样就无需直接在较低级别的模块中导入商店,因为它将从顶层导入。