Русский
Открыть в Telegram

ПостПочему Error Boundary, а не просто try/catch для компонентов

4 июня 2025
З
Заметки про React
Ссылка
нажмите — покажем
Почему Error Boundary, а не просто try/catch для компонентов В React нельзя использовать try/catch чтобы отловить ошибки рендера компонента. Это связано с тем, что React не вызывает функцию Calculator когда он создает элемент, он лишь создает описание того что надо отрендерить. const element = ( <div> <h1>Calculator</h1> <Calculator left={1} operator="+" right={2} /> <Calculator left={1} operator="-" right={2} /> </div> ) Поэтому если обернуть объявление выше в try/catch можно получить только ошибки во время создания этих элементов, а не ошибки рендера. Реальные ошибки происходят внутри компонента, во время рендера, эффектов и обработчиков ошибок. function Calculator(props) { try { // ...render logic } catch (error) { return <div>Ошибка!</div> } } По примеру выше можно обернуть в try/catch тело компонента, но это лишь обработает ошибки на уровне данного компонента. Для обработки ошибок внутри компонента используют Error Boundary. Рекомендуется использовать библиотеку react-error-boundary, которая предоставляет готовый компонент ErrorBoundary и хук useErrorBoundary для обработки ошибок в асинхронных колбеках, эффектах, обработчиках ошибок. Пример использования хука: import { useErrorBoundary } from 'react-error-boundary' function MyComponent() { const { showBoundary } = useErrorBoundary() async function handleClick() { try { await doSomethingAsync() } catch (error) { showBoundary(error) } } return <button onClick={handleClick}>Do something</button> } https://www.epicreact.dev/why-react-error-boundaries-arent-just-try-catch-for-components-i6e2l
41 · 3.1K ·

Рядом в ленте

ЗЗаметки про ReactУправление фокусом в React с помощью flushSync Установить фокус на инпуте сразу в React может оказаться не так просто, как кажется. При изменении стейта, React ЗЗаметки про ReactАнонс TypeScript Native Вышла превью версия TypeScript написанная на Go. Ее можно установить через npm: npm install -D @typescript/native-preview Этот пакет пре
это сообщение
ЗЗаметки про ReactОстерегайтесь скрытых проблем при работе с search params Типо-безопасность — это только вершина айсберга, о которой вспоминают разработчики при работе с search ЗЗаметки про ReactРеактивность – это легко Стандартный useContext заставляет обновляться все компоненты-потребители, даже если им не нужна изменившаяся часть состояния. Это приво
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем