Какая есть стратегия обработки ошибок в React-приложении?

Ребята, приветствую ) В разработке сервис. Помимо основного приложения есть раздел со статистикой, где можно с помощью календаря отправлять запрос на статистику.Например при отправки неправильного запроса необходимо показывать на странице popup с текстом ошибки. Если ошибок несколько - соответственно должно быть несколько popup. Возник вопрос как правильно обрабатывать приложение и показывать ошибки ?
Все приложение должен оборачивать компонент, который обрабатывает ошибки всего приложения (предохранитель вроде) . при получении пустого ответа или ошибки в запросе мы генерируем throw new error ? не уверен, что такой вариант будет работать в axios-запросах , где используются промисы.
Или второй вариант - просто есть компонент (popup), в который мы передаем статус , если возникает ошибка в axios-запросах ?

В общем как правильно работать с ошибками в React-приложении (обработка ошибок в axios-запросах и обработка ошибок в UI) ? Есть похожие примеры или статьи, которые можно почитать на эту тему ? Заранее спасибо )

6006f7816ac45133802814.png
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 2
profesor08
@profesor08 Куратор тега JavaScript
Ну расположи где-то компонент контейнер для твоих нотисов. Создай некий store, где будешь хранить нотисы. В компоненты ты их выводишь, а любыми другими средствами добавляешь. Проще некуда, это базовые вещи реакта.
Ответ написан
Комментировать
@AlexR0v
если я правильно понял то тебе нужно выводить пользователю сообщения в случае возникновения ошибок. Тогда выручит react-toastify, у них очень понятная документация, ты ими по сути оборачиваешь все приложение и выводишь тогда когда где либо возникает ошибка. Если ошибок несколько - будет несколько уведомлений.
Вот что типа такого:
if (res.data.success) {
notifySuccess(res.data.messages)
}
if (!res.data.success) {
Object.values(res.data.errors).map((error) =>
notifyError({error})
)
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы