Выбор ответа Junior Паттерны компонентов обновлено
Error boundary на хуках
Вопрос
Как в React 19 написать свой error boundary?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Классом с getDerivedStateFromError или react-error-boundary. В React до сих пор нет хука для перехвата ошибок рендера, error boundary пишется только классом.
Варианты ответа
- Хуком
useErrorBoundary()из пакетаreact, он появился в 19 - Через
use(Error)внутри функционального компонента-обёртки - Обернуть компонент в
<Suspense fallback>с запасным UI - Классом с
getDerivedStateFromErrorилиreact-error-boundaryправильный ответ
Разбор
В React до сих пор нет хука для перехвата ошибок рендера, error boundary пишется только классом. На практике используют пакет react-error-boundary, который даёт компонент ErrorBoundary и хук для его сброса.
useErrorBoundaryесть в стороннем пакете, а не вreact.useчитает промисы и контекст, ошибки он не ловит.Suspenseпоказывает запасной UI на время загрузки, а не при ошибке.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.