【问题标题】:How to transform an action creator with multiple dispatches in redux toolkit?如何在 redux 工具包中转换具有多个调度的动作创建者?
【发布时间】:2021-04-29 06:53:28
【问题描述】:

我正在尝试将我的 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 中触发调度?

【问题讨论】:

    标签: reactjs redux react-redux redux-toolkit


    【解决方案1】:

    该代码将完全像以前一样工作,并且可以继续与 redux 工具包一起使用。

    Redux 工具包为您提供了一些有用的抽象,但您不应只使用 redux 工具包为您提供的工具。

    请注意,official redux style guide 建议您允许多个 reducer 响应相同的操作。所以大多数时候你应该只调度一个动作并使用extraReducers在三个不同的切片中对其做出反应。

    【讨论】:

    • 我明白了,干杯!是的,我想我会对此进行迭代。首先使用我当前的设置启动并运行它,然后重构简单的操作。一旦一切正常,我将仔细查看extraReducers
    最近更新 更多