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
相关产品推荐
相关产品推荐

