reactjs - 如何在 redux 工具包中转换具有多个调度的动作创建者?
问题描述
我正在尝试将我的 redux 商店移向 redux 工具包。有利的是,我想将它们全部放入createSlice
.
在我收到许多此类调度之前:
export const resetSelection = () => (dispatch, getState) => {
dispatch(clearSelection()); # clears current selection
dispatch(showLoader()); # shows global loading spinner
dispatch(fetchSelection()); # fetching selection with no filters applied
};
注意:showLoader 是不同减速器的一部分。
或者:
export const loadDataTypes = () => async (dispatch) => {
dispatch(loadingDataTypes());
const data = await genericJsonFetch(GET_DATA_TYPES);
dispatch(setDataTypes(data));
dispatch(loadingDataTypes());
};
我将如何使用 redux 工具包来做到这一点,因为我显然无法在 reducer 中触发调度?
解决方案
该代码将完全像以前一样工作,并且可以继续与 redux 工具包一起使用。
Redux 工具包给你一些有用的抽象,但你不应该只使用 redux 工具包给你的工具。
请注意,尽管官方的 redux 风格指南建议您允许多个 reducer 响应相同的操作。所以大多数时候你应该只调度一个动作并使用extraReducers
.
推荐阅读
- matlab - 在 MATLAB 中使图像中的单个彩色区域平滑
- java - 使用春季会话 ID cookie 进行单点登录?
- java - 我无法理解“此示例中的 String.format() 函数有什么帮助吗?”
- java - 由于 onPause 或 onResume 而崩溃
- java - 使用流/parallelStream 将字符串插入 StringBuffer/StringBuilder 的问题
- javascript - 如何对已通过开玩笑调用函数而更改的全局变量进行单元测试
- jenkins - 通过修改 POM 来构建参数化功能的问题
- amazon-web-services - EC2 实例无响应状态重复
- javascript - 如何删除克隆的行
- sql-server - 队列中设置的 Azure 计时器函数输出绑定记录