Выбор ответа Junior Паттерны компонентов обновлено

Error boundary на хуках

Вопрос

Как в React 19 написать свой error boundary?

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

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

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

Коротко

Правильный ответ: Классом с getDerivedStateFromError или react-error-boundary. В React до сих пор нет хука для перехвата ошибок рендера, error boundary пишется только классом.

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

  1. Хуком useErrorBoundary() из пакета react, он появился в 19
  2. Через use(Error) внутри функционального компонента-обёртки
  3. Обернуть компонент в <Suspense fallback> с запасным UI
  4. Классом с getDerivedStateFromError или react-error-boundaryправильный ответ

Разбор

В React до сих пор нет хука для перехвата ошибок рендера, error boundary пишется только классом. На практике используют пакет react-error-boundary, который даёт компонент ErrorBoundary и хук для его сброса.

  • useErrorBoundary есть в стороннем пакете, а не в react.
  • use читает промисы и контекст, ошибки он не ловит.
  • Suspense показывает запасной UI на время загрузки, а не при ошибке.

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

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