обрабатывать componentDidCatch для всех реагирующих компонентов - PullRequest
0 голосов
/ 12 июня 2018

Я смотрю на свои варианты обработки ошибок в моем приложении реакции.Для того же самого, Error Boundary кажется хорошим вариантом.

Один из вариантов - обернуть внешние компоненты в Error Boundary, но это нежелательно для меня, так как резервный пользовательский интерфейс заменит весь компонент приложения.Другой вариант - обернуть все компоненты по отдельности.

Вместо того, чтобы вручную оборачивать все компоненты в границу ошибки, есть ли способ, которым я могу неявно обрабатывать componentDidCatch всех компонентов в одном месте?

1 Ответ

0 голосов
/ 12 июня 2018

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

   if(obj.nestedObj1 && obj.nestedObj1.nestedObj2){
      //try using obj.nestedObj1.nestedObj2.nestedObj3
      console.log(obj.nestedObj1.nestedObj2.nestedObj3)
      //if nestedObj3 is undefined still it shouldn't throw js error
      //but not in case of obj or nestedObj1 or nestedObj2
   }

для перехватчиков, я добавляю в ответ success = true или false и проверяю их перед обновлением моего избыточного кода.или локальное состояние с response.data, только если response.success имеет значение true и имеет несколько обработчиков для response.success = false случаев.

Надеюсь, это поможет как-то.

...