如何在 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.

在三个不同的片段中对其做出反应