Не путайте структуру данных со структурой состояния
Когда вы создаете форму на React, вы часто объединяете всё в один большой объект состояния.
Вы видите раздел «Адрес» в своем интерфейсе. Вы создаете объект адреса в своем состоянии. Это выглядит организованно. Это выглядит чисто.
Это ловушка.
Проблема не в React. Проблема в структуре вашего состояния.
Формы — это не статические данные. Это интерактивные системы. Пользователи не обновляют формы раздел за разделом. Они обновляют их поле за полем.
Почему вложенное состояние вредит вашему проекту:
- Обновления становятся трудоемкими. Чтобы изменить только название города, вам придется заново создавать объект города, объект адреса и объект формы верхнего уровня, чтобы соблюсти иммутабельность.
- Утечка сложности. По мере роста формы логика валидации и рендеринга становится всё сложнее в управлении.
- Увеличивается количество ререндеров. Изменение одного вложенного значения создает новые ссылки на
