#reactjs #redux
#reactjs #redux
Вопрос:
Я хочу увеличить adult
свойство passenger
объекта из моего хранилища
const store = {
//...
passenger: {
adult: 1,
child: 0
}
///...
}
В моем редукторе у меня есть
if (action.type === actionTypes.ADD_ADULT) {
return {
...state,
adult: state.passenger.adult 1
};
}
но, конечно, я получаю ошибку «Не удается прочитать свойство ‘adult’ для undefined», потому что в официальной документации Redux говорится, что Redux впервые вызовет reducer с неопределенным состоянием. Есть ли способ использовать предыдущее состояние или я должен просто передать новое значение adult
через action.payload
?
PS: Я использую combineReducers
и preloadedState
, если это как-то влияет.
Комментарии:
1. Можете ли вы поделиться своим полным кодом reducer.
Ответ №1:
Вы могли бы создать initialState
объект, который вы используете в качестве значения по умолчанию для вашего состояния, чтобы у state.adult
него было значение.
Пример
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;
}
}