直接使用 store.dispatch 有什么害处吗?
在我看来,调用起来要容易得多(因为它对所有子组件都可用),到目前为止,在我的测试中,我还没有找到不同之处。
谢谢!
在通用应用程序中,您需要针对每个请求使用不同的商店实例。如果您只是从某个模块将商店导出为单例,那么您将很难添加服务器渲染。
这就是为什么我们从不鼓励在文档中使用单例存储,并且总是鼓励您使用<Provider>
通过 React context将其传递到层次结构中。这使得 store 可用于消费组件,而无需使其成为单例。
至于为什么connect()
从 React Redux 中传递dispatch
作为一个 prop 而不是它本身——这是因为你在连接的组件中store
并不需要它本身。store
订阅和阅读状态是由完成的,connect()
因此您只需要dispatch()
在组件中。
通常我发现 store 是在顶层模块中初始化的,然后通过react-redux connect 函数在较低级别的模块中使用。
这避免了直接在较低级别的模块中导入商店的需要,因为它将从顶层导入。