处理所有反应组件的componentDidCatch

时间:2018-06-12 10:54:40

标签: reactjs nextjs

我正在寻找在我的反应应用程序中进行错误处理的选项。同样,错误边界似乎是一个不错的选择。

一个选项是在Error Boundary中包装最外面的组件,但这不是我所希望的,因为后备UI将替换整个app组件。其他选择是单独包装所有组件。

有没有一种方法可以在一个地方隐式处理所有组件的componentDidCatch,而不是手动包装Error Boundary中的所有组件?

1 个答案:

答案 0 :(得分:-2)

根据我的知识,没有直接的方法可以像你的要求那样做。但是,我试图通过请求拦截器和深层检查嵌套对象来避免这些情况,比如

   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更新我的redux或本地状态之前检查它们仅当response.success为true并且有一些处理程序用于response.success = false例。

我希望能以某种方式提供帮助。