我正在寻找在我的反应应用程序中进行错误处理的选项。同样,错误边界似乎是一个不错的选择。
一个选项是在Error Boundary中包装最外面的组件,但这不是我所希望的,因为后备UI将替换整个app组件。其他选择是单独包装所有组件。
有没有一种方法可以在一个地方隐式处理所有组件的componentDidCatch,而不是手动包装Error Boundary中的所有组件?
答案 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例。
我希望能以某种方式提供帮助。