我正在开发一个应用程序,该应用程序在React组件内的某个地方引发了错误,因此在控制台中会出现以下错误:
React会尝试使用您提供的错误边界从头开始重新创建此组件树
我真的不明白为什么React会这样做,因为它显然会导致无限的渲染循环(而且确实如此),因为每次重新渲染时错误都会不断发生。
所以我想知道,可以在某处禁用此行为吗?我不确定是什么原因引起的,如果只是React或其他插件。任何帮助将不胜感激。
答案 0 :(得分:1)
我想您的组件ErrorBoundary中有此方法,只需删除
static getDerivedStateFromError(error) {
// Update state so the next render will show the fallback UI.
return { hasError: true };
}
答案 1 :(得分:0)
经过大量挖掘,我设法进行了整理。
我在react-hot-loader回购中找到了解决方案。正如他们所说:
On Hot Module Update we will inject componentDidCatch and a special render
to every Class-based component you have, making Error Boundaries more local.
因此,有两种可能的解决方案:
对我来说,这两个都有效。
答案 2 :(得分:0)
React 将尝试使用您提供的错误边界 ErrorBoundary 从头开始重新创建此组件树。
它正在重新渲染多次。所以你会得到这个问题。
在类 Component 中添加 React.PureComponent
它将解决您的问题