Ошибка при рендере любого компонента без обработки размонтирует всё приложение — пользователь видит белый экран. Граница ошибок перехватывает ошибку в своём поддереве и показывает запасной интерфейс.
import { ErrorBoundary } from "react-error-boundary";
<ErrorBoundary fallback={<p>Не удалось загрузить отчёт</p>}>
<Report />
</ErrorBoundary>
Что важно знать
- Встроенные границы — только классовые компоненты (
componentDidCatch,getDerivedStateFromError); на практике берут библиотекуreact-error-boundary. - Не ловят ошибки в обработчиках событий и асинхронном коде — там обычный
try/catch. - Ставят на уровне страниц и крупных виджетов, плюс отправка ошибки в мониторинг (Sentry).