Выбор ответа Middle React 18-19: Suspense, transitions, RSC обновлено

use в условии

Вопрос

Какое утверждение про хук use верно?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: use можно вызывать в if и циклах, но только в компоненте или хуке. Это единственный хук, который разрешено вызывать условно: if (show) { const theme = use(ThemeContext); }.

Варианты ответа

  1. use подчиняется всем правилам хуков: нельзя вызывать в условиях и циклах
  2. use можно вызывать в if и циклах, но только в компоненте или хукеправильный ответ
  3. use можно вызывать где угодно, в том числе в обычной функции вне компонентов
  4. use работает в серверных компонентах, а в клиентских его заменяет useContext

Разбор

Это единственный хук, который разрешено вызывать условно: if (show) { const theme = use(ThemeContext); }. Но вызывать его можно только при рендере компонента или из другого хука.

  • Ограничение на условия к use не относится.
  • Вне рендера use не работает.
  • В клиентских компонентах use тоже работает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.