为什么在Redux中直接使用“this.props.dispatch”而不是“store.dispatch”?

为什么在Redux中直接使用“this.props.dispatch”而不是“store.dispatch”?

问题描述:

直接使用store.dispatch有什么不利吗?为什么在Redux中直接使用“this.props.dispatch”而不是“store.dispatch”?

在我看来,调用起来要容易得多(因为它可用于所有子组件),而在我的测试中,迄今为止,我还没有找到区别。

谢谢!

universal apps中,您需要在每个请求上使用不同的存储实例。如果您只是将某商店作为单件从某个模块导出,那么您将很难添加服务器渲染。

这就是为什么我们从不鼓励在文档中使用单件商店,并且总是鼓励您使用<Provider>通过React context将其传递给层次结构。这使得商店可以使用商店,而不使其成为单身。

至于为什么connect()从阵营终极版通过dispatch作为道具,而不是store本身,那是因为你并不真正需要store本身在连接部件。订阅和阅读状态由connect()完成,因此您只需要组件中的dispatch()

+0

如何从动作创建者访问商店,例如,如果它不是单身人士?我正在考虑有一个商店模块,分别为客户端和服务器端使用导出单例和工厂。 – orourkedd

+0

@orourkedd为什么你想要访问行动创造者的商店? –

+0

我一直在想它,现在认为这是一个不好的模式,以行动创造者或任何其他全球/单身的方式访问商店。 – orourkedd

通常我会发现商店在顶层模块中初始化,然后在react-redux连接函数中在较低层模块中使用。

这可以防止需要将商店直接导入较低级别的模块,因为它将从顶级导入。