Redux报错:Store无有效Reducer及DevTools显示undefined问题求助
Redux 报错排查:Store 无有效 reducer 且 DevTools 显示 undefined
报错信息
Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers
相关代码
1. store.js
import {configureStore} from '@reduxjs/toolkit' import rootReducer from './rootReducers' const store = configureStore({ reducer: rootReducer, middleware: getDefaultMiddleware => { return getDefaultMiddleware({ serializableCheck: false }) }, devTools: true }) export default store
2. rootReducers.js
import { authReducer } from "./authReducer"; const rootReducer = { auth: authReducer, } export default rootReducer;
3. authReducer.js
import { createSlice } from "@reduxjs/toolkit"; export const authReducer = createSlice({ name: 'auth', initialState:{ successMessage: '', errorMessage: '', loader: false, userInfo: '' }, reducers: { }, extraReducers: () => { } }) export default authReducer.reducer
预期与实际效果
预期 Redux 面板显示
auth(pin)
successMessage (pin): "",
errorMessage (pin): "",
loader (pin): "",
userInfo (pin): ""
实际问题
Redux-DevTools 中显示 undefined (pin),相关截图:

解决方案
问题核心是rootReducers.js 的导入方式错误:
当前使用的命名导入 import { authReducer } from "./authReducer"; 拿到的是 createSlice 返回的 slice 对象,并非有效的 reducer 函数;真正的 reducer 是文件的默认导出(authReducer.reducer)。
修改 rootReducers.js 的导入语句:
// 替换命名导入为默认导入 import authReducer from "./authReducer"; const rootReducer = { auth: authReducer, } export default rootReducer;
修改后,configureStore 能正确识别合法的 auth reducer,DevTools 会正常显示 auth 节点及其初始状态。
内容的提问来源于stack exchange,提问作者Ismael Sanchez
相关产品推荐
相关产品推荐

