DOM и React Middle Компоненты на практике обновлено

Баг: незакрытые зависимости эффекта

Условие

Эффект должен вызывать onChange(query) при каждом изменении query, но не при изменении других пропсов и не бесконечно.

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

  • срабатывает на изменение

  • не срабатывает без изменений

Как подойти

Три формы: без массива - после каждого рендера; пустой массив - один раз; со списком - при изменении любого элемента по Object.is. Нестабильная функция в зависимостях даёт бесконечный цикл, поэтому её либо оборачивают в useCallback у родителя, либо кладут в ref.

Подсказки: 2
  1. Эффект без массива зависимостей выполняется после каждого рендера.
  2. В зависимости попадает всё, что эффект читает снаружи, включая функции.

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

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