React处理错误边界钩子getDerivedStateFromError

简介: React的`getDerivedStateFromError`方法用于在类组件中捕获子组件的错误,并据此更新状态。当子组件抛出错误时,此静态方法被调用,并返回新的状态,通常用于在UI中显示错误信息。开发环境下错误仍会显示,但生产环境下可以避免错误页面的直接展示,而是显示备用的错误信息或组件。

getDerivedStateFromError

getDerivedStateFromError是react中类组件的一个方法,它会在子组件出现报错的时候,返回一个形参。
作为类组件的静态方法使用,子组件报错直接执行。

    state={
   
        hasError:false,
    }
 // 当这个组件的子组件出现报错的时候,
    // 会出发 ,并返回error
    // 开发环境还是会报错,生产环境不会报错 直接显示 要显示的文字
    static getDerivedStateFromError(error) {
   
        console.log(error,"error")
        return {
   
            hasError: error
        }
    }

例子:
在render函数中:

 {
   
        this.state.hasRrror ? "LookDNSdataCom出问题了" : 
        <LookDNSdataCom
             showDnsList={
   '4564'}
             isModalVisible={
   isModalVisible}
             title="查看DNS数据"
             Key='key'
             Value='value'
             changeIsModalVisibleState={
   this.handleCancel}
          >   
         </LookDNSdataCom>
 }

报错之后执行静态方法getDerivedStateFromError
在这里插入图片描述
会自动执行getDerivedStateFromError,并打印了error信息;
在这里插入图片描述
也成功将要显示的信息展示了出来;

但是我们会发现这个效果过了几秒之后自动又出现报错页面了:
在这里插入图片描述
那是因为开发环境还是会报错生产环境不会报错 直接显示 要显示的文字,白话一些就是这个适用于生产环境,为了生产环境不报错。
开发中我们可以将"LookDNSdataCom出问题了"换成一个错误组件。

目录
相关文章
|
1月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
41 0
|
2月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
36 1
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
70 0
|
前端开发
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之8
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之7
47 0
|
4月前
|
前端开发 JavaScript
前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件
前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件
57 1
|
10月前
|
前端开发
前端笔记:React的form表单全部置空或者某个操作框置空的做法
在React框架前端开发中,经常会有弹出框的开发,涉及到弹出框,难免就会有表单。一般在关闭弹出框或者对表单联动时,往往都需要考虑对表单进行置空操作了。
86 0
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
66 0
|
JavaScript 前端开发 调度
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
106 0
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之1
前端学习笔记202305学习笔记第二十九天-React keep alive原理之1
42 0
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之4
前端学习笔记202305学习笔记第二十九天-React keep alive原理之4
42 0