useState: передаём объект в качестве аргумента

Состояние может содержать любые значения JavaScript, включая объекты. Однако не следует напрямую изменять объекты, хранящиеся в состоянии React. Вместо этого, если требуется обновить объект, необходимо создать новый (или сделать копию существующего), а затем настроить состояние на использование этой копии. Вы узнаете: — Как правильно обновить объект в состоянии React — Как обновить вложенный объект, не мутируя его — Что такое иммутабельность и как ее не нарушить — Как сделать копирование объектов менее повторяющимся с помощью Immer Тезисно: — Рассматривайте все состояния в React как неизменяемые. — Когда вы храните объекты в состоянии, их мутация не вызовет рендеринга и изменит состояние в предыдущих "снимках" рендеринга. — Вместо того чтобы мутировать объект, создайте его новую версию и вызовите повторный рендеринг, установив для нее состояние. — Для создания копий объектов можно использовать spread синтаксис объектов {...obj, something: 'newValue'}. — Синтаксис spread является неглубоким: он копирует только один уровень в глубину. — Чтобы обновить вложенный объект, необходимо создавать копии по всему уровню, начиная с того места, которое обновляется. — Чтобы сократить количество повторяющегося кода копирования, используйте Immer. Документация:
Коммит по теме:
Библиотека immer:
Подписывайтесь, ставьте лайки, пишите комментарии

Смотрите также