Redux-saga 与 redux-toolkit 保持一致,在操作中检测到不可序列化的值,路径为:register

问题描述 投票:0回答:1

我正在使用 redux 工具包,但收到此错误:

serializableStateInvariantMiddleware.ts:197  A non-serializable value was detected in an action, in the path: `register`. Value: ƒ register(key) {
        _pStore.dispatch({
          type: _constants__WEBPACK_IMPORTED_MODULE_0__.REGISTER,
          key: key
        });
      } 
    Take a look at the logic that dispatched this action:  Object 
    (See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants) 
    (To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)

我在网上找到了一些答案,说我必须通过将其设置为 false 来禁用 serializedCheck,或者忽略某些操作。例如,我尝试了this解决方案:我添加了要忽略的操作列表,但这并没有解决我的问题。即使设置

ignoredPaths: ['register']
serializableCheck: false
也不起作用。

现在这是我的商店:

import { configureStore } from "@reduxjs/toolkit";
import createSagaMiddleware from "redux-saga";
import storage from "redux-persist/lib/storage";
import rootReducer from "./rootReducers";
import {
    persistReducer,
    persistStore,
    FLUSH,
    REHYDRATE,
    PAUSE,
    PERSIST,
    PURGE,
    REGISTER,
} from "redux-persist";

const sagaMiddleware = createSagaMiddleware();
const persistConfig = {
    key: "root",
    storage,
};
const persistedReducer = persistReducer(persistConfig, rootReducer);

const store = configureStore({
    reducer: persistedReducer,
    devTools: process.env.NODE_ENV !== "production",
    middleWare: (getDefaultMiddleware) =>
        getDefaultMiddleware({
            serializableCheck: {
                ignoredActions: [
                    FLUSH,
                    REHYDRATE,
                    PAUSE,
                    PERSIST,
                    PURGE,
                    REGISTER,
                ],
            },
        }).concat(sagaMiddleware),
});

export const persistor = persistStore(store);
export default store;

我做错了什么吗?

react-redux redux-toolkit store redux-saga redux-persist
1个回答
0
投票

代码中应该是

middleware
,而不是
middleWare

© www.soinside.com 2019 - 2024. All rights reserved.