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

React-Redux中出现TypeError: store.getState is not a function错误求助

解决TypeError: store.getState is not a function的Redux问题

嘿,我一眼就看出问题所在啦!你当前导出的不是一个已经初始化好的Redux Store实例,而是一个用来创建Store的函数——这就是为什么调用store.getState()会报错,因为函数本身没有这个方法呀。

问题根源

看你这段代码:

export default function store() {
  return createStore(
    rootReducer,
    window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
  );
}

你导出的是名为store的函数,当你在其他文件里导入并直接调用store.getState()时,本质上是在对一个函数调用getState,自然会触发TypeError。

修复方案

根据你的需求,有两种常见的修复方式:

方式一:直接导出Store实例(最常用)

如果你不需要动态创建多个Store或者传入自定义初始状态,直接创建好Store并导出即可:

import { createStore } from 'redux';
import rootReducer from '../reducers/index.js';

// 直接创建Store实例
const store = createStore(
  rootReducer,
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

export default store;

之后在其他文件里导入这个store,就能直接调用store.getState()、store.dispatch()等方法了。

方式二:保留函数形式(按需创建)

如果你需要根据不同场景传入初始状态,或者要创建多个Store实例,可以保留函数,但使用时必须先调用函数得到Store实例:
比如在入口文件中:

import createStore from './store/index.js';

// 调用函数创建Store实例
const store = createStore();

// 现在可以正常使用getState了
console.log(store.getState());

小提示

大多数Redux应用场景下,方式一就足够用了,因为通常我们只需要一个全局的Store实例来管理应用状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:59:25