javascript - componentdidcatch 捕捉到什么样的错误
问题描述
我已经像这样包装了我的主要组件:
class App extends React.Component {
render() {
return (
<div>
<ErrorBoundary>
<Home />
</ErrorBoundary>
</div>
);
}
}
只是想知道componentDidCatch
捕获了什么样的错误?没有捕获编译错误,当我在我的子组件中更改它时
this.props.users.people.length
它应该this.props.users.userslength
显示我的加载微调器(在我的子组件中有一个三元运算符,不确定这是否会影响它)
只是想知道它捕获了什么样的错误以及我如何伪造浏览器以使其正常工作?
解决方案
错误边界是 React 组件,它们在其子组件树的任何位置捕获 JavaScript 错误,记录这些错误,并显示一个备用 UI 而不是崩溃的组件树。错误边界在渲染期间、生命周期方法中以及它们下方的整个树的构造函数中捕获错误。
确保检查来自子组件的错误,并且它们是在渲染期间引起的,而不是在事件处理程序或其他一些异步代码中引起的。对于该代码,您仍然可以自由使用常规try/catch
的 .
请仔细阅读官方网站上关于错误边界的文章
推荐阅读
- reactjs - Redux - 重复对象名称
- java - 将 ResultSet 返回到另一个函数
- python - 试图点击找到的元素,但据说此时不可点击
- c# - 检测代码克隆在 Visual Studio 2019 中不可用
- javascript - CSS子组件的边框在父组件的边框之上
- swift - 使用 AVAudioPlayer 从包含 utf8 编码字符串的 URL 流式传输音频
- python - 有没有办法一次查找超过 100 个推特状态或查找非常大的数据集的状态?
- amazon-web-services - Electron-Updater 和 AWS S3 存储桶策略 - 错误:HttpError: 403 Forbidden
- html - if 语句以防函数失败
- angular - 如何在Angular 8中将动态数据从父级传递给子级ng-content