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

React.js配置redux-persist做状态持久化报store.getState is not a function如何解决

问题根因

错误来自store实例导入逻辑错误,具体原因:

  1. 你的store.js文件默认导出的是一个「返回store和persistor对象的工厂函数」,不是直接导出store/persistor实例
  2. 你在index.js中两次import默认导出的内容,拿到的都是这个工厂函数本身,不是实际的store和persistor实例,把函数传给Provider的store属性,自然不存在getState方法。
修复方案

两种方案任选其一即可:

方案1:修改入口文件index.js的导入逻辑

把原来的导入代码:

import store from "./store/";
import persistor from "./store/";

改成先执行工厂函数解构取值即可,其余代码保持不变:

import getStorePersistor from "./store/";
const { store, persistor } = getStorePersistor();

方案2:修改store.js的导出逻辑(更符合常规使用习惯)

如果不想每次调用工厂函数,可以直接在store.js里实例化后导出对象:
把store.js末尾的导出代码:

export default () => {
  let store = createStore(persistedReducer);
  let persistor = persistStore(store);
  return { store, persistor };
};

改成:

export const store = createStore(persistedReducer);
export const persistor = persistStore(store);

然后对应修改index.js的导入语句:

import { store, persistor } from "./store/";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:15:04