我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React错误边界ErrorBoundaries

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React错误边界ErrorBoundaries

首先 我们先构建出问题的场景

我们创建一个react项目

然后在class="lazy" data-src下创建 components 文件夹目录

在下面创建一个 error.jsx 组件

参开代码如下

import React from "react";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          { null.bingt }
      </div>
    )
  }
}

这时 就会有人说了 你这 null.bingt 不是摆明会报错吗?

没错 我们要的就是报错

找到class="lazy" data-src下的 App.js 编写代码如下

import './App.css';
import React from "react";
import Error from "./components/error";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          <span>你好</span>
          <Error/>
      </div>
    )
  }
}

运行之后 控制台直接报错 界面白屏 但其实 App组件上还有个你好啊 说明 整个项目都没渲染出来

直接白屏 版本低一点的react还会出现报错的专门的界面 但在上线之后 客户看到的就是一片空白

但我们想 因为一个组件报错 导致整个项目都运行不起来 这合理吗?

显然是不合理的

此时 我们可以在 components 目录下创建 ErrorBoundary.jsx组件

参考代码如下

import React from "react"
export default class ErrorBoundary extends React.Component{
    state = {
        hasError:false,
        error:null,
        errorInfo:null
    }
    componentDidCatch(error,errorInfo){
        this.setState({
            hasError:true,
            error:error,
            errorInfo:errorInfo
        })
    }
    render(){
        if(this.state.hasError){
            return <div>{ this.props.render(this.state.error,this.state.errorInfo) }</div>
        }
        return this.props.children;
    }
}

此时 我们的一个捕获错误的组件就写好了

然后 改写 class="lazy" data-src下的 App.js

代码如下

import './App.css';
import React from "react";
import Error from "./components/error";
import ErrorBoundary from "./components/ErrorBoundary";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          <span>你好</span>
          <ErrorBoundary render ={ (error,errorInfo) => <p>{ '加载时发生错误' }</p>}>
              <Error/>
          </ErrorBoundary>
      </div>
    )
  }
}

此时 我们将ErrorBoundary捕获报错的组件 套在了Error外面

然后 编写 当报错时 就渲染

{ ‘加载时发生错误’ }

运行结果如下

控制台依旧会输出报错信息 但 将不会运行到其他组件的渲染 而且 我们指定报错后 渲染的

{ ‘加载时发生错误’ }

也成功渲染出来了

就是 之后我们指定可能某个组件 会报错 就可以用这个组件套一下 避免一个组件报错 整个项目白屏的情况

到此这篇关于React错误边界Error Boundaries的文章就介绍到这了,更多相关React错误边界内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React错误边界ErrorBoundaries

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React错误边界ErrorBoundaries

错误边界是一种React组件,这种组件可以捕获发生在其子组件树任何位置的JavaScript错误,并打印这些错误,同时展示降级UI,而并不会渲染那些发生崩溃的子组件树
2023-01-29

React错误边界ErrorBoundaries详解

错误边界是一种React组件,这种组件可以捕获发生在其子组件树任何位置的JavaScript错误,并打印这些错误,同时展示降级UI,而并不会渲染那些发生崩溃的子组件树
2022-12-03

React之错误边界ErrorBoundaries示例详解

这篇文章主要为大家介绍了React之错误边界ErrorBoundaries示例教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

React如何定义错误边界

这篇文章将为大家详细讲解有关React如何定义错误边界,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。定义错误边界在Javascript里,我们都是使用 try/catch 来捕捉可能发生的异常,在catc
2023-06-26

怎么在React中处理错误边界组件

这期内容当中小编将会给大家带来有关怎么在React中处理错误边界组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。React中的未捕获的 JS 错误会导致整个应用的崩溃,和整个组件树的卸载。从 React
2023-06-14

React中Portals与错误边界处理实现方法

这篇文章主要讲解了“React中Portals与错误边界处理实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React中Portals与错误边界处理实现方法”吧!目录Portals错误
2023-06-20

React中Portals与错误边界处理怎么实现

这篇“React中Portals与错误边界处理怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“React中Portal
2023-06-05

捕获并处理“切片边界越界”错误的方法

知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《捕获并处理“切片边界越界”错误的方法》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!问题
捕获并处理“切片边界越界”错误的方法
2024-04-04

react native 怎么捕捉错误

react native捕捉错误的方法:1、打开相应的react文件;2、使用“require('ErrorUtils').setGlobalHandler(function(err) {...})”方法实现捕获错误,并给予用户合理的提示。
2023-05-14

react native如何捕捉错误

这篇文章主要介绍“react native如何捕捉错误”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react native如何捕捉错误”文章能帮助大家解决问题。react native捕捉错误的方
2023-07-04

python数组越界错误解决

当我们定义一个空的数组的时候如,ip=[]如果我们直接ip[i]="sss"的话会报越界错误 out of range之类的解决办法是ip.append("sss”)用append添加
2023-01-31

React错误的习惯用法分析详解

这篇文章主要为大家介绍了React错误用法习惯分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-09

React Native release包全局错误处理——Android篇

当我们在开发React Native应用时,如果在调试状态下,获取错误的异常信息是非常简单的,JS异常会立即在真机上显示(或者打开调试模式在浏览器控制台中显示),原生层的java闪退异常则可以通过Android Studio的Logcat进
2022-06-06

编程热搜

目录