Я изучал Redux и хотел правильно понять, как работает редуктор. Если вы посмотрите на редуктор под названием titleReducer
:
const initialState={
titleColor: null,
}
const titleReducer = (state = initialState, action) => {
switch (action.type) {
case TURN_TITLE_GREEN:
return {
...state,
titleColor: 'green'
}
case UPDATE_TITLE:
return {
...state,
title: action.payload
}
default: return state;
}
}
Итак, я хотел бы задать несколько вопросов по приведенному выше коду. Во-первых, представьте, что есть три редуктора: reducer1. reducer2 и titleReducer (я знаю глупый пример, но потерпите меня). Вопрос в том, почему, даже если у titleReducer есть только одно свойство titleColor, нам нужно создать новую копию состояния, используя ... state. Что, если мы просто используем:
{
title: action.payload
}
Второй вопрос в порядке каждый раз, когда titleReducer получает действие "TURN_TITLE_GREEN", редуктор принимает предыдущее состояние, создает новую копию и отправляет обратно компоненту. Вопрос «откуда взято предыдущее состояние? Я имею в виду, правда ли, что когда titleReducer получает действие TURN_TITLE_GREEN, он создает новую копию и в то же время переводит titleColor: green в состояние, которое будет служить предыдущее состояние в следующий раз. Это правда?