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

React Redux报错:reducer中'action'未定义(no-undef)

解决Reducer中‘action is not defined’的报错问题

嘿,我一眼就发现问题啦!你在定义mainReducer的时候,把第二个参数命名成了simpleAction,但在函数体里却一直用action这个变量——JavaScript找不到action的定义,所以才会抛出'action' is not defined no-undef的错误。

Redux会把action对象作为第二个参数传递给reducer,你只需要把参数名和函数体内的引用统一起来就行,两种改法都可以:

改法一:把参数名改成action(推荐,符合社区通用习惯)

import { getName } from '../actions';

let defaultState={ name: "Sam" }

const mainReducer=(state = defaultState, action)=>{
  if (action.type === "CHANGE_NAME") {
    return{
      ...state,
      name: action.name
    }
  } else {
    return{
      ...state
    }
  }
}

export default mainReducer

改法二:保持参数名simpleAction,函数体内统一用这个名字

import { getName } from '../actions';

let defaultState={ name: "Sam" }

const mainReducer=(state = defaultState, simpleAction)=>{
  if (simpleAction.type === "CHANGE_NAME") {
    return{
      ...state,
      name: simpleAction.name
    }
  } else {
    return{
      ...state
    }
  }
}

export default mainReducer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:30