Redux configureStore报错:reducer为必填参数,求解决以显示Todo列表
解决Redux configureStore初始化报错问题
错误原因
你使用configureStore的方式不符合Redux Toolkit的API要求:该方法接受的是单个配置对象,而非传统createStore那样分开传递reducer、初始状态、增强器三个参数。你的写法导致Redux无法正确识别reducer参数,从而抛出错误。
修正后的代码
import { combineReducers } from 'redux'; import { configureStore } from '@reduxjs/toolkit'; import { composeWithDevTools } from 'redux-devtools-extension'; // 合并你的所有reducer(记得实际填入对应的reducer,比如 todos: todoReducer) const reducer = combineReducers({ // 示例:todos: todoReducer }); const initialState = {}; // 正确调用configureStore,传入配置对象 const store = configureStore({ reducer, preloadedState: initialState, // 配置DevTools增强器 enhancers: (defaultEnhancers) => composeWithDevTools(...defaultEnhancers) }); export default store;
额外优化提示
- Redux Toolkit默认已集成
redux-thunk,无需手动引入和配置applyMiddleware(thunk),如果没有其他自定义中间件,可以省略中间件相关代码。 - 若不需要额外的DevTools配置,
configureStore会自动启用Redux DevTools,此时可以进一步简化代码:
const store = configureStore({ reducer, preloadedState: initialState });
修正后store即可正常初始化,后续在App.js中通过Redux的Provider组件包裹根组件,使用useSelector获取Todo列表数据、useDispatch处理操作,就能在浏览器中正常显示Todo列表。
内容的提问来源于stack exchange,提问作者Aditya Pandey
相关产品推荐
相关产品推荐

