Nic*_*one 0 thunk redux redux-thunk redux-toolkit
我的商店是这样的:
export default configureStore({
reducer: {
sequencer: sequencerReducer,
editMode: editModeReducer,
tone: toneReducer,
app: appReducer,
},
middleware: (getDefaultMiddleware) => {
getDefaultMiddleware({ immutableCheck: false });
},
});
Run Code Online (Sandbox Code Playgroud)
我有一个工作thunk,但我需要这个immutableCheck: false配置。一旦设置,它似乎会覆盖默认的中间件,并且 thunk 不再工作。这是我的想法:
export const modCell = (step, noteOn) => (dispatch, getState) => {
const selectedSound = getState().editMode.selectedSound;
dispatch(sequencerSlice.actions.toggleCell({ step, selectedSound }));
};
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Error: Actions must be plain objects. Use custom middleware for async actions.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我看到了这个问题。您的middleware函数没有返回任何内容。该箭头函数有大括号middleware,因此它是一个没有隐式返回的函数体。您要么需要添加显式return语句,要么通过删除花括号将其更改为隐式返回。因此,您最终将根本不需要任何中间件设置。
编辑
明确地说,您想要的是:
export default configureStore({
reducer: {
sequencer: sequencerReducer,
editMode: editModeReducer,
tone: toneReducer,
app: appReducer,
},
middleware: (getDefaultMiddleware) => {
return getDefaultMiddleware({ immutableCheck: false });
},
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |