Есть ли способ глобально перехватить необработанные исключения из обещаний в реакции?
Я попытался использовать componentDidCatch, но похоже, что этот хук предназначен только для реальных ошибок при рендеринге компонентов. Обещания могут происходить в одной из иерархий компонентов, но на самом деле их не выбрасывают до более позднего времени.
Я также обернул tryCatch вокруг своей функции, которая выполняет начальный рендеринг приложения, но также не может перехватить исключение (по той причине, я думаю)
1 ответ
Решение
Вы можете прикрепить событие onunhandledrejection к самому верхнему компоненту метода componentDidDount.
class TopComponent extends React.Component {
componentDidMount() {
window.onunhandledrejection = (err) => {
// handle error
}
}
}