使用 React Error 边界来处理获取错误是好还是坏实践?

Pru*_*ent 2 error-handling reactjs fetch-api

我需要处理 React 应用程序中组件中的异步预输入搜索栏(键入时获取到后端)中的错误,因此在考虑如何处理它们时,我想到了错误边界。

我正在考虑将搜索结果包装在错误边界中,并在结果响应无效时抛出错误。

但后来我想错误边界应该只用于更严重的错误吗?通过它处理获取错误真的是个好主意吗?

Hen*_*ody 5

这不是一个好或坏的做法的问题。错误边界不能用于处理获取错误,它们用于捕获渲染或生命周期方法期间遇到的错误,而不是事件处理程序或异步代码中遇到的错误。

但即使他们可以,我仍然会说,当一个简单的try/catch就足够了时,在这种情况下使用它们将是不好的做法。

来自错误边界的文档

错误边界会在渲染期间、生命周期方法以及其下方的整个树的构造函数中捕获错误。

笔记

错误边界不会捕获以下错误:

  • 事件处理程序(了解更多)
  • 异步代码(例如setTimeout或requestAnimationFrame回调)
  • 服务端渲染
  • 错误边界本身(而不是其子级)抛出的错误

相反,您应该使用try/catch块。