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
相关产品推荐
相关产品推荐

