Баг: условный вызов хука
Условие
Компонент молча теряет состояние счётчика, если user на время исчезает. Почини так, чтобы порядок и количество хуков не зависели от условий: показывай 'нет данных', если user не передан, иначе имя и счётчик кликов.
Что проверяют тесты
без данных
с данными
состояние переживает пропажу данных
Как подойти
Правило хуков: одинаковый порядок и количество на каждом рендере. React хранит их списком и сопоставляет по индексу. Коварство в том, что исключение бросается не всегда: если рендер вышел до единого хука, React считает следующий рендер монтированием и молча обнуляет всё состояние. Тихая потеря данных хуже падения - её не видно в логах. Условие всегда переносится ниже всех хуков.
Подсказки: 2
- React сопоставляет хуки по порядку вызова, а не по имени.
- Все хуки должны вызываться до любого раннего return.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.