DOM и React Middle Состояние и useState/useReducer обновлено

useToggle

Условие

Хук возвращает [значение, toggle]. toggle() без аргумента переключает, toggle(true/false) выставляет явно. Функция toggle должна быть стабильной между рендерами.

Что проверяют тесты

  • переключает

  • выставляет явно

  • ссылка на toggle стабильна

Как подойти

Стабильная ссылка нужна, чтобы хук можно было класть в зависимости эффектов и memo-компонентов без лишних перерисовок. Секрет: функциональная форма setValue(v => …) позволяет не включать value в зависимости useCallback.

Подсказки: 2
  1. useCallback с пустыми зависимостями даёт стабильную ссылку.
  2. Чтобы обойтись без зависимостей, читай текущее значение функциональной формой сеттера.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.