DOM и React Senior Context и стейт-менеджеры обновлено
Составной компонент через контекст
Условие
Select и Select.Option: Option берёт текущее значение и обработчик из контекста родителя. Выбранный пункт получает класс "on".
Что проверяют тесты
рисует пункты
подсвечивает выбранный
клик сообщает наружу
работает через обёртки любой глубины
вне родителя падает понятно
Как подойти
Составной компонент даёт декларативный API без клонирования детей: React.Children.map сломался бы на любой обёртке, а контекст работает на любой глубине. Два обязательных момента: useMemo на значении контекста (объектный литерал перерисовывал бы всех потребителей каждый рендер) и явная проверка на использование вне родителя.
Подсказки: 3
- Контекст избавляет от прокидывания пропсов через промежуточные обёртки.
- Значение контекста - объект, его надо мемоизировать.
- Отсутствие контекста должно давать понятную ошибку, а не падение на null.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.