首页 > 解决方案 > componentdidcatch 捕捉到什么样的错误

问题描述

我已经像这样包装了我的主要组件:

class App extends React.Component {
  render() {
    return (
      <div>
        <ErrorBoundary>
          <Home />
        </ErrorBoundary>
      </div>
    );
  }
}

只是想知道componentDidCatch捕获了什么样的错误?没有捕获编译错误,当我在我的子组件中更改它时

this.props.users.people.length它应该this.props.users.userslength显示我的加载微调器(在我的子组件中有一个三元运算符,不确定这是否会影响它)

只是想知道它捕获了什么样的错误以及我如何伪造浏览器以使其正常工作?

标签: javascriptreactjs

解决方案


错误边界是 React 组件,它们在其子组件树的任何位置捕获 JavaScript 错误,记录这些错误,并显示一个备用 UI 而不是崩溃的组件树。错误边界在渲染期间、生命周期方法中以及它们下方的整个树的构造函数中捕获错误。

确保检查来自子组件的错​​误,并且它们是在渲染期间引起的,而不是在事件处理程序或其他一些异步代码中引起的。对于该代码,您仍然可以自由使用常规try/catch的 .

请仔细阅读官方网站上关于错误边界的文章


推荐阅读