如何防止 React 在出错时重新创建组件树?

lau*_*ent 8 error-handling reactjs

我正在开发一个应用程序,它在 React 组件中的某处抛出错误,所以在控制台中有这个错误:

React 将尝试使用您提供的错误边界从头开始重新创建此组件树

我真的不明白为什么 React 会这样做,因为它显然会导致无限渲染循环(确实如此),因为每次重新渲染时错误都会不断发生。

所以我想知道,这种行为可以在某处禁用吗?我不确定是什么导致了它,如果它只是 React 或其他一些插件。任何帮助,将不胜感激。

小智 3

经过大量挖掘后,我设法解决了这个问题。

我在react-hot-loader repo上找到了解决方案。像他们说的那样:

On Hot Module Update we will inject componentDidCatch and a special render
to every Class-based component you have, making Error Boundaries more local.
Run Code Online (Sandbox Code Playgroud)

因此,有两种可能的解决方案:

  1. 将您的类组件更改为功能组件。
  2. 您可以编写自己的错误报告器(如此处指定的那样

对我来说,这两者都有效。