DOM и React Middle Состояние и useState/useReducer обновлено
useToggle
Условие
Хук возвращает [значение, toggle]. toggle() без аргумента переключает, toggle(true/false) выставляет явно. Функция toggle должна быть стабильной между рендерами.
Что проверяют тесты
переключает
выставляет явно
ссылка на toggle стабильна
Как подойти
Стабильная ссылка нужна, чтобы хук можно было класть в зависимости эффектов и memo-компонентов без лишних перерисовок. Секрет: функциональная форма setValue(v => …) позволяет не включать value в зависимости useCallback.
Подсказки: 2
- useCallback с пустыми зависимостями даёт стабильную ссылку.
- Чтобы обойтись без зависимостей, читай текущее значение функциональной формой сеттера.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Состояние и useState/useReducer»
- Производное значение
- Стабильность dispatch
- Батчинг
- Ленивая инициализация state
- Функциональный апдейтер
- useReducer
- Апдейтер вперемешку со значением
- Ленивая инициализация