Структура 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 } };
→ Ссылка