Одно из правил редуктора в Redux: мы должны рассматривать состояние как доступное только для чтения и возвращать новый объект как новое состояние.
Но есть одна серая область: она должна строго возвращать новый объект как состояние, или мы можем вернуть тот же объект состояния?
Кажется, глядя на общий код, такой как:
function favoriteColors(state, action) {
if (state === undefined) {
state = [];
}
if (action.type === 'ADD') {
return Array.from(new Set([...state, action.color])); // new array
} else if (action.type === 'REMOVE') {
return state.filter(color => color !== action.color); // new array
} else {
return state;
}
}
Когда action.type
неизвестно, то то же состояние объект возвращается. Таким образом, правило заключается в том, что редуктор не обязательно должен возвращать новый объект состояния, но может возвращать тот же самый. Но строгое правило: государство должно быть доступно только для чтения?