react-redux - Redux 工具包 - 如何在切片之间共享操作

标签 react-redux redux-toolkit

我正在使用 Redux Toolkit 并且有三个组件,每个组件都有一个切片:A、B、C。

我需要组件 A 分派(dispatch)一个 Action ,组件 B 和 C 对其使用react。 我怎样才能让所有组件不相互依赖,类似于发布/订阅模式?

最佳答案

首先,在组件 B 和 C 中添加 extraReducers 以响应操作。

但是,您可能会以 the circular reference problem. 结束其中一个组件引用另一个组件,反之亦然。

作者 mentions a solution on github我用过。即,将共享的 reducer 分离到一个单独的文件中。我的实现如下:

  • featureA/byId/actions.js 包含定义的 Action 使用 createAction。
  • featureB/byId/actions.js 包含使用 createAction 定义的操作。

每个 createAction 都是类似于以下的操作:

const createTodo = createAction("todos/createTodo");
  • featureA/byId/reducer.js 从上面的两个 action.js 文件导入它的 extraReducer-actions。
  • featureB/byId/reducer.js 从上面的两个 action.js 文件导入它的 extraReducer-actions。

结果:在多个 reducer 中使用的操作没有循环引用问题。

关于react-redux - Redux 工具包 - 如何在切片之间共享操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61531530/

相关文章:

javascript - 从不同的 reducer 访问 reducer ?

reactjs - 在嵌套 reducer 中追加数据

reactjs - 如何使用Redux Toolkit(带有TypeScript)解决 'Property '类型中缺少 'AsyncThunkAction'类型的问题?

reactjs - 如何在 Redux-toolkit rtk-query graphql 应用程序中处理错误格式

reactjs - Redux Toolkit RTK 查询 useMutation 并保留缓存数据

javascript - 当 Reducer 中的存储发生更改时,useSelector 不会更新。 ReactJS 终极版

reactjs - 具有调度函数的 useSelector 和 UseEffect 由于不更新状态而创建循环

javascript - 当一个组件只需要派发一个 action creator 时应该使用什么模式?

next.js - redux-toolkit 是否与接下来的 13 个新应用程序/目录兼容?

redux - 第一次完成后如何调用 RTK 突变