更换 redux 工具包商店或其他方式拥有两个商店

Posted

技术标签:

【中文标题】更换 redux 工具包商店或其他方式拥有两个商店【英文标题】:Replacing redux toolkit store or other way to have two stores 【发布时间】:2021-12-09 22:47:54 【问题描述】:

我有以下问题。 我被要求制作一个示例项目,将 Redux Toolkit Query 和 Redux Toolkit 与 Fetch API(或 Axios)的使用进行比较。

我有 Redux Toolkit Query 部分。 如何添加其他商店? 我应该这样做:

<ChosenStoreContext>
  <Provider store=store>
    <ApiProvider api=api>
      ...Rest of the app
    </ApiProvider>
  </Provider>
</ChosenStoreContext>

添加 ChosenStoreContext(useContext 布尔值)只是为了告诉组件它们应该调度查询操作还是存储操作

或者我应该完全走其他路线吗? ApiProvider documentation 表示它可能会导致冲突。 任何提示都会有所帮助!

【问题讨论】:

【参考方案1】:

ApiProvider 也将创建一个商店并使用 Provider 将其传递下来 - 覆盖原来的 Provider

通常,您的应用程序中应该只有一个商店 - 您可以将这两个示例放在一个商店的不同切片上,而不会相互影响。

可以选择使用multiple contexts 拥有多个不同的提供程序和挂钩集,但这是额外的工作,不会为您带来任何好处。

把所有东西放在同一个商店里。

【讨论】:

以上是关于更换 redux 工具包商店或其他方式拥有两个商店的主要内容,如果未能解决你的问题,请参考以下文章

我可以让我的应用程序共享单个 redux 商店吗?

在 React-native 中使用 Redux Toolkit 持久化存储

初始化react redux商店的初始全球状态的不同方式?

React/Redux 测试 - 在上下文或道具中找不到“商店”

结合2个不同项目的2个redux商店

Redux 商店使用 nextJS 自行重置路由更改