Неизменяемое состояние и объединение¶
Как и в случае с 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 | |