DOM и React Senior Context и стейт-менеджеры обновлено

Составной компонент через контекст

Условие

Select и Select.Option: Option берёт текущее значение и обработчик из контекста родителя. Выбранный пункт получает класс "on".

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

  • рисует пункты

  • подсвечивает выбранный

  • клик сообщает наружу

  • работает через обёртки любой глубины

  • вне родителя падает понятно

Как подойти

Составной компонент даёт декларативный API без клонирования детей: React.Children.map сломался бы на любой обёртке, а контекст работает на любой глубине. Два обязательных момента: useMemo на значении контекста (объектный литерал перерисовывал бы всех потребителей каждый рендер) и явная проверка на использование вне родителя.

Подсказки: 3
  1. Контекст избавляет от прокидывания пропсов через промежуточные обёртки.
  2. Значение контекста - объект, его надо мемоизировать.
  3. Отсутствие контекста должно давать понятную ошибку, а не падение на null.

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

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

Термины по теме