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

Redux报错:Uncaught TypeError: Cannot call a class as a function 求助

问题分析与解决方案

错误原因

你遇到的Uncaught TypeError: Cannot call a class as a function错误,根源在于错误导入了thunk中间件的包。你当前导入的是react-thunk,但正确的redux thunk中间件包应该是redux-thunk。react-thunk并非官方的redux中间件,其导出的内容不符合redux middleware的要求,导致调用时出现类被当作函数执行的错误。

修复步骤

  • 确保安装了正确的redux-thunk包:
    npm install redux-thunk
    # 或使用yarn
    yarn add redux-thunk
    
  • 修改Store.js中的thunk导入语句,将react-thunk替换为redux-thunk

修正后的Store.js代码

import { legacy_createStore as createStore, combineReducers, applyMiddleware } from "redux";
import thunk from 'redux-thunk'; // 此处为修正点
import { composeWithDevTools} from 'redux-devtools-extension'
import { productReducer } from "./reducers/productReducer";

const reducer = combineReducers({
    products: productReducer,
});
let initialState = {};
const middleware = [thunk];
const store = createStore(reducer, initialState, composeWithDevTools(applyMiddleware(...middleware)));

export default store;

验证

修改完成后重新运行项目,该错误应会消失,redux store能够正常通过Provider传递给React组件。

内容的提问来源于stack exchange,提问作者PAWAN KUMAR KANOAGIA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:31:14