Неизменяемое состояние и объединение¶
Как и в случае с useState
в React, нам нужно обновлять состояние неизменяемым образом.
Вот типичный пример:
1 2 3 4 5 6 |
|
Функция set
предназначена для обновления состояния в хранилище. Поскольку состояние неизменяемо, оно должно было выглядеть следующим образом:
1 |
|
Однако, поскольку это общий шаблон, set
на самом деле объединяет состояния, и мы можем пропустить часть ...state
:
1 |
|
Вложенные объекты¶
Функция set
объединяет состояние только на одном уровне. Если у вас есть вложенные объекты, вам нужно объединить их явно. Для этого используется оператор spread, как показано на рисунке:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Для сложных случаев использования рассмотрите возможность использования библиотек, которые помогают работать с неизменяемыми обновлениями. Вы можете обратиться к Обновление значений вложенных объектов состояния.
Флаг замены¶
Чтобы отключить поведение слияния, вы можете указать булево значение replace
для set
следующим образом:
1 |
|