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

Контекст

Условие

Сделай контекст темы: провайдер отдаёт значение, потомок его читает. Компонент Label должен показывать текущую тему.

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

  • читает значение провайдера

  • обновляется при смене

  • без провайдера берёт значение по умолчанию

Как подойти

Контекст решает прокидывание пропсов через уровни, но не заменяет стейт-менеджер: любое изменение value перерисовывает всех потребителей. Отсюда правило - не класть в value объектный литерал без useMemo и разделять редко и часто меняющиеся данные на два контекста.

Подсказки: 2
  1. useContext возвращает значение ближайшего провайдера.
  2. Аргумент createContext - значение по умолчанию, когда провайдера нет.

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

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

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