DOM и React Middle Компоненты на практике обновлено
Сброс состояния через key
Условие
Форма профиля с внутренним состоянием должна полностью сбрасываться при смене userId. Менять внутренности Form нельзя - решай на уровне App.
Что проверяют тесты
показывает начальное значение
смена пользователя сбрасывает ввод
тот же пользователь состояние сохраняет
Как подойти
Приём «key как идентификатор сущности»: вместо useEffect, синхронизирующего состояние с пропсами, мы заявляем, что это другой экземпляр компонента. Код короче, и невозможно забыть сбросить какое-то поле. Обратная сторона - полное размонтирование: теряются фокус, прокрутка и незавершённые анимации.
Подсказки: 2
- Состояние привязано к позиции компонента в дереве.
- Изменение key заставляет React размонтировать старый экземпляр и смонтировать новый.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.