默认情况下,若一个组件在渲染期间(render)发生错误,会导致整个组件树全部卸载;
错误边界:是一个组件,该组件会捕获渲染期间(render)子组件发生的错误,并有能力阻止错误的继续传播
**让某个组件捕获错误**
1.编写生命周期函数数: getDerivedStateFromError(推荐)
1.静态函数(16版本后)
2.运行时间点:渲染子组件的过程中,发生错误之后,在更新页面之前
3.**注意:只有子组件发生错误,才会运行这个函数**
4.该函数返回一个对象,React会将该对象的属性覆盖掉当前的组件的state
5.参数:错误对象
6.通常,该函数用于改变状态
2.编写生命周期函数:componentDidCatch
1.实例方法
2.运行时间点:渲染子组件的过程中,
3.通常,该函数用于记录错误信息
**细节**
某些错误,错误边界组件无法捕获
1.自身的错误
2.异步的错误
3.事件中的错误
网友评论