Структура state. Redux
Делаю учебный проект на react/redux. Есть вот такая структура стэйта:
const defaultState = {
calcState: {
currentDate: '',
currentMoney: '',
dataList: [],
},
};
Пытаюсь сделать редьюсер для полей currentDate и currentMoney.
const calcReducer = (state = defaultState, action) => {
switch (action.type) {
case CALC_CHANGE_DATE_TEXT: {
const { date } = action.payload;
return { ...state, calcState: { currentDate: date } };
}
case CALC_CHANGE_MONEY_TEXT: {
const { money } = action.payload;
return { ...state, calcState: { currentMoney: money } };
}
default: {
return state;
}
}
};
Получается в case'ах я возвращаю старый state, но с новым полем calcState, в котором хранится всего одно поле currentDate/currentMoney. А как сделать, чтобы возвращался старый state, со всеми старыми полями, но с добавлением изменений?
Ответы (1 шт):
Автор решения: Станислав Усанов
→ Ссылка
Вот так:
return { ...state, calcState: { ...state.calcState, currentDate: date } };
...
return { ...state, calcState: { ...state.calcState, currentMoney: money } };