Reactjs 如何在reducer中使用以前的状态属性

Reactjs 如何在reducer中使用以前的状态属性,reactjs,redux,Reactjs,Redux,我想从我的商店中增加乘客对象的成人属性 const store = { //... passenger: { adult: 1, child: 0 } ///... } 我的减速机里有 if (action.type === actionTypes.ADD_ADULT) { return { ...state, adult: state.passenger.adult + 1 }; } 但我当然会犯一个错误“无法读取未定义的属性

我想从我的商店中增加
乘客
对象的
成人
属性

const store = {
//...
passenger: {
    adult: 1,
    child: 0
  }
///...
}
我的减速机里有

if (action.type === actionTypes.ADD_ADULT) {
    return {
      ...state,
      adult: state.passenger.adult + 1
    };
  }
但我当然会犯一个错误“无法读取未定义的属性‘成人’”,因为官方Redux文档称Redux将第一次使用未定义状态调用reducer。有没有办法使用以前的状态,或者我应该通过
action.payload
传递一个新值
maintal


注意:我正在使用
组合减速机
预加载状态
,如果它有影响的话。

您可以创建一个
初始状态
对象,作为您的状态的默认值,以便
状态。成人
将有一个值

示例

const initialState = {
  adult: 0,
  child: 0
};
function reducer(state = initialState, action) {
  if (action.type === actionTypes.ADD_ADULT) {
    return {
      ...state,
      adult: state.adult + 1
    };
  }

  // ...

  else {
    return state;
  }
}

您可以创建一个
initialState
对象,将其用作状态的默认值,以便
state.maintal
将有一个值

示例

const initialState = {
  adult: 0,
  child: 0
};
function reducer(state = initialState, action) {
  if (action.type === actionTypes.ADD_ADULT) {
    return {
      ...state,
      adult: state.adult + 1
    };
  }

  // ...

  else {
    return state;
  }
}

你能分享你的全部代码吗?你能分享你的全部代码吗。