React · Middle · Запитання 21 з 75

Чому всі споживачі контексту перемальовуються за кожного рендеру провайдера?

<AuthContext value={{ user, login, logout }}>
  {children}
</AuthContext>

Пояснення

React порівнює value через Object.is. Об'єктний літерал завжди новий, тому кожен рендер провайдера будить усіх споживачів. Рішення - useMemo для значення (і useCallback для функцій) або поділ контексту на частини.

Де почитати

Помилка в запитанні

React · Middle · запитання 21

Перевірте себе

Пройдіть тест React · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест