Есть ли способ глобально перехватить необработанные исключения из обещаний в реакции?

Я попытался использовать componentDidCatch, но похоже, что этот хук предназначен только для реальных ошибок при рендеринге компонентов. Обещания могут происходить в одной из иерархий компонентов, но на самом деле их не выбрасывают до более позднего времени.

Я также обернул tryCatch вокруг своей функции, которая выполняет начальный рендеринг приложения, но также не может перехватить исключение (по той причине, я думаю)

1 ответ

Решение

Вы можете прикрепить событие onunhandledrejection к самому верхнему компоненту метода componentDidDount.

class TopComponent extends React.Component {
 componentDidMount() {
    window.onunhandledrejection = (err) => {
      // handle error
    }
 }

}

Другие вопросы по тегам