Задать вопрос
polyak-888
@polyak-888
Js, React.js, css, frontend

Почему не отрабатывает componentDidCatch?

Сделал компонент ErrorBoundary которым обернул приложение
import React, { Component } from 'react'

class ErrorBoundary extends Component {
    state = {
        hasError: false
    }

    componentDidCatch(error, info) {
        console.log(error)
        console.log(info)
        this.setState({
            hasError: true
        })
    }

    render () {
        if(this.state.hasError) {
            return <h1>Какая-то ошибка</h1>
        }
        return this.props.children
    }
}

export default ErrorBoundary


При монтировании одного из компонентов идет запрос на сервер
export const postVolonteerList = async (page = 1, perPage = 10, filters) => {
    try {
        let res = await instance
            .get(
                `/api/voluinteers`,
                {
                    params: {
                        page: page,
                        page_size: perPage,
                        ...filters
                    }
                });
        return res.data
    }catch(err){
        console.log('ОШИБКА', err.message);
        throw err
    }
};


Я умышленно сделал неверный запрос и в catch выбрасываю ошибку, однако ErrorBoundary не отлавливает ее. В чем может быть причина
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@Dasslier
FrontEnd Developer
componentDidCatch срабатывает при ошибке возникшей при рендере, либо при ошибке работы с состоянием
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽