为什么在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()
。
如何从动作创建者访问商店,例如,如果它不是单身人士?我正在考虑有一个商店模块,分别为客户端和服务器端使用导出单例和工厂。 – orourkedd
@orourkedd为什么你想要访问行动创造者的商店? –
我一直在想它,现在认为这是一个不好的模式,以行动创造者或任何其他全球/单身的方式访问商店。 – orourkedd