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

Redux配置store、reducer、Provider均正常,useSelector返回undefined原因排查

问题根因

你编写的counterReducer缺少默认返回分支:
Redux 初始化阶段会自动触发内置的@@INIT类型动作,该动作不会匹配你代码中写的increment、decrement两个判断条件,此时 reducer 没有返回任何值,导致全局 state 被初始化为 undefined,所以useSelector读取时拿到的就是 undefined。

修复方案

在redux.js的counterReducer末尾添加默认返回原 state 的逻辑即可,修复后代码如下:

import  {createStore} from 'redux'
const  counterReducer = (state = {counter:0}, action)=>{
  if(action.type ==='increment'){
    return {counter:state.counter+1}
  }
  if(action.type ==='decrement'){
    return{counter : state.counter-1}
  }
  // 新增默认返回逻辑,不匹配的action直接返回原有state
  return state
}
const store =  createStore(counterReducer);

export default store;

补充说明

Redux 要求 reducer 是纯函数,任何输入场景下都必须返回合法的 state 值,禁止无返回值的情况,否则就会出现state被重置为undefined的问题。

内容的提问来源于stack exchange,提问作者Parviz Pirizade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:42:03