Никогда не мутируйте государство
Эти заключительные проблемы описывают несколько способов обеспечения ключевого принципа неизменности состояния в Redux. Неизменяемое состояние означает, что вы никогда не изменяете состояние напрямую, вместо этого вы возвращаете новую копию состояния. Если вы взяли снимок состояния Redux приложения с течением времени, вы увидите что - то вроде state 1
, state 2
, state 3
, state 4
, ...
и так далее , где каждое состояние может быть аналогично последним, но каждый представляет собой отдельную часть данных. Эта непреложность, по сути, является тем, что обеспечивает такие функции, как отладка во время путешествия, о которой вы, возможно, слышали. Redux не активно применяет неизменность государства в своем магазине или редукторах, эта ответственность ложится на программиста. К счастью, JavaScript (особенно ES6) предоставляет несколько полезных инструментов, которые можно использовать для обеспечения неизменности вашего состояния, будь то string
, number
, array
или object
. Обратите внимание, что строки и числа являются примитивными значениями и неизменны по своей природе. Другими словами, 3 всегда 3. Вы не можете изменить значение числа 3. array
или object
, однако, являются изменяемыми. На практике ваше состояние, вероятно, будет состоять из array
или object
, поскольку они являются полезными структурами данных для представления многих типов информации.
В редакторе кода есть store
и reducer
для управления предметами. Завершите запись случая ADD_TO_DO
в редукторе, чтобы добавить новое дело в состояние. Есть несколько способов сделать это со стандартным JavaScript или ES6. Посмотрите, можете ли вы найти способ возврата нового массива с элементом из action.todo
добавленным в конец.