【发布时间】:2021-06-21 05:06:36
【问题描述】:
我的商店是这样的:
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.
有什么想法吗?
【问题讨论】:
-
显示您尝试发送的 thunk,以及如何发送它?另外,为什么需要关闭不变性检查?
-
@markerikson 刚刚更新了 thunk。这是在减速器之一(sequencerSlice)中定义的。我有im检查已关闭,因为我正在构建一个具有数千个状态属性的深度嵌套的鼓音序器。检查使应用程序的使用速度太慢。
-
嗯。与此问题无关,但您能否在github.com/reduxjs/redux-toolkit/issues/926 中发表评论并留下指向您的实际项目存储库的链接,或者将模拟您当前设置的沙箱/存储库放在一起?我想改进不变性检查性能,这听起来像是一个很好的压力测试。
-
谢谢,我会在几天内完成。
标签: redux redux-thunk redux-toolkit thunk