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

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),相关截图:
Redux报错提示
DevTools显示undefined

解决方案

问题核心是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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:17:16