Redux 工具包 thunk 在 getDefaultMiddlware 配置后消失

Redux toolkit thunk disappears after getDefaultMiddlware config

我的店铺是这样的:

export default configureStore({
  reducer: {
    sequencer: sequencerReducer,
    editMode: editModeReducer,
    tone: toneReducer,
    app: appReducer,
  },
  middleware: (getDefaultMiddleware) => {
    getDefaultMiddleware({ immutableCheck: false });
  },
});

我有一个可以正常工作的 thunk,但我需要这个 immutableCheck: false 配置。一旦设置它似乎覆盖了默认的中间件并且 thunk 不再工作。这是我的声音:

export const modCell = (step, noteOn) => (dispatch, getState) => {
  const selectedSound = getState().editMode.selectedSound;
  dispatch(sequencerSlice.actions.toggleCell({ step, selectedSound }));
};

这是我得到的错误:

Error: Actions must be plain objects. Use custom middleware for async actions.

有什么想法吗?

我明白了。您的 middleware 函数不是 returning 任何东西。 middleware 箭头函数有大括号,所以它是一个没有隐式 return 的函数体。您要么需要添加显式 return 语句,要么通过删除大括号将其更改为隐式 return 。所以,你最终根本没有设置任何中间件。

编辑

说清楚,你要的是:

export default configureStore({
  reducer: {
    sequencer: sequencerReducer,
    editMode: editModeReducer,
    tone: toneReducer,
    app: appReducer,
  },
  middleware: (getDefaultMiddleware) => {
    return getDefaultMiddleware({ immutableCheck: false });
  },
});