如何在 redux 工具包中转换具有多个调度的动作创建者?
How to transform an action creator with multiple dispatches in redux toolkit?
我正在尝试将我的 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 工具包为您提供的工具。
请注意 official redux style guide 建议您允许多个 reducer 响应同一操作。所以你应该在大多数时候只分派一个动作并使用 extraReducers
.
在三个不同的片段中对其做出反应
我正在尝试将我的 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 工具包为您提供的工具。
请注意 official redux style guide 建议您允许多个 reducer 响应同一操作。所以你应该在大多数时候只分派一个动作并使用 extraReducers
.