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;
}
}
你能分享你的全部代码吗?你能分享你的全部代码吗。