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

使用redux-persist时出现redux.isAction未定义错误,移除后恢复正常

Redux-Persist 配合 Redux Toolkit v2 出现 TypeError: redux.isAction 不是函数(值为undefined)

问题现象

触发错误:TypeError: 0, _$$_REQUIRE(_dependencyMap[15], "redux").isAction 不是函数(值为undefined)

仅在使用持久化reducer(persisted reducer)时出现该错误,移除持久化配置、直接使用rootReducer并删除persistor相关代码后,应用运行完全正常。精简代码到最小复现示例后,核心问题仍与Redux持久化reducer相关。

当前依赖版本

"@reduxjs/toolkit": "^2.2.6",
"react": "18.2.0",
"react-native": "0.72.10",
"redux": "^4.2.1",
"redux-api-middleware": "^3.2.0",
"redux-mock-store": "^1.5.4",
"redux-persist": "^6.0.0",
"redux-persist-expire": "^1.1.0",
"redux-persist-transform-immutable": "^5.0.0",
"redux-saga": "^1.3.0"

复现用Store代码

import { configureStore } from '@reduxjs/toolkit';
import AsyncStorage from '@react-native-async-storage/async-storage';
import {
  persistStore,
  persistReducer,
} from 'redux-persist';
import rootReducer from 'reducers/rootReducer';

const persistConfig = {
  key: 'root',
  storage: AsyncStorage,
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

export const makeStore = () => {
  const store = configureStore({
    reducer: persistedReducer,
  });

  return store;
};

export const store = makeStore();

export const persistor = persistStore(store);

已验证的临时修复

将configureStore中的reducer: persistedReducer替换为reducer: rootReducer,并移除export const persistor = persistStore(store);后,应用恢复正常,但失去状态持久化功能。

问题分析与解决方案建议

  1. 版本兼容性问题:Redux Toolkit v2对Redux内部API做了调整,而redux-persist@6.0.0已停止维护,未适配RTK v2的变化,导致调用了已被移除或修改的redux.isAction方法。
  2. 降级RTK版本:暂时将@reduxjs/toolkit降级到v1.x系列(如^1.9.7),该版本与redux-persist@6.0.0兼容性良好,可快速解决问题。
  3. 检查RootReducer有效性:确认rootReducer是正确组合的有效Redux reducer(比如通过RTK的combineReducers或createSlice生成),无效的reducer被persistReducer包装后可能触发异常。
  4. 替换持久化方案:由于redux-persist已停止维护,后续会持续出现兼容性问题,建议改用RTK官方推荐的状态持久化方式,或自行基于AsyncStorage实现简单的持久化逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 11:49:58