为什么在React.js中需要ErrorBoundary?

问题描述 投票:2回答:2

它处理什么样的错误,并且在现实世界中有任何情况吗?

我阅读了文档,但它没有给出一个很好的例子

而且文档还提到它可以处理UI错误,但是可以在开发时解决UI错误,因此我们为什么需要“错误边界”。

javascript reactjs react-hooks
2个回答
0
投票

错误边界类似于React组件的try-catch块。它们使您可以捕获并处理优雅地响应组件中的意外错误,例如,向用户显示错误消息。

这些错误(如果未解决,将导致您的应用崩溃。错误边界使您能够捕获这些错误并以防止应用崩溃的方式处理它们,而是向用户提供用户友好的消息,指示出问题了。

请注意,错误边界不会处理以下错误:

  • 事件处理程序
  • 异步代码(例如setTimeout或requestAnimationFrame回调)
  • 服务器端渲染
  • 在错误边界本身(而不是其子级)中引发的错误

这里是一个很好的article,解释了错误边界


0
投票

但是UI错误可以在开发时解决

[UI错误在开发时无法解决,尽管像FlowTypescript这样的键入确实有很大帮助,但是,数据服务器通常可能会出现运行时错误。


用于捕获运行时错误]的错误边界和显示友好的UI。

请参见Compile time vs Run time errors

[ErrorBoundary是实现getDerivedStateFromErrorgetDerivedStateFromError的类组件,以便在后退UI上添加其他渲染。

当前,它可以只能实现

与一个类组件,通常是应用程序中唯一的类组件,其余的是带有钩子的功能组件。

在现实的用例中,您将应用程序包装为某些componentDidCatch组件并呈现所需的UI。

<ErrorBoundary/>
© www.soinside.com 2019 - 2024. All rights reserved.