You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Redux Toolkit集成Redux Persist时出现非序列化值报错求助

解决Redux Toolkit集成Redux Persist时的非序列化值报错

这个报错是Redux Toolkit自带的serializableCheck中间件触发的:它检测到Redux Persist派发的persist/PERSIST action里包含了无法序列化的函数类型值(register和rehydrate),而Redux Toolkit默认会校验action的可序列化性,所以抛出了警告。

下面是两种可行的解决办法:

  • 跳过Redux Persist相关action的序列化检查(推荐)
    在configureStore配置里,指定忽略Redux Persist的核心action类型,让中间件不对这些action做序列化校验:

    import { configureStore } from '@reduxjs/toolkit';
    import { persistStore, persistReducer } from 'redux-persist';
    import storage from 'redux-persist/lib/storage';
    import rootReducer from './reducers';
    
    const persistConfig = {
      key: 'root',
      storage,
    };
    
    const persistedReducer = persistReducer(persistConfig, rootReducer);
    
    export const store = configureStore({
      reducer: persistedReducer,
      middleware: (getDefaultMiddleware) =>
        getDefaultMiddleware({
          serializableCheck: {
            ignoredActions: ['persist/PERSIST', 'persist/REHYDRATE', 'persist/PURGE', 'persist/REGISTER', 'persist/UNREGISTER'],
          },
        }),
    });
    
    export const persistor = persistStore(store);
    
  • 完全关闭序列化检查(不推荐)
    如果你确定不需要Redux Toolkit的序列化校验,可以直接关闭这个功能,但这会失去对非序列化状态/action的警告,可能引发后续持久化或调试问题:

    export const store = configureStore({
      reducer: persistedReducer,
      middleware: (getDefaultMiddleware) =>
        getDefaultMiddleware({
          serializableCheck: false,
        }),
    });
    

内容的提问来源于stack exchange,提问作者kodeater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:58:17