react 组件错误边界处理

避免一个组件错误导致整个页面白屏不能使用等情况
方式一:手写
	1、创建一个边界组件,将可能发生错误的组件当作插槽,插入边界组件内
	
	2、边界组件中使用componentDidCatch生命周期函数,当组件发生错误的时候触发
		componentDidCatch(err,errInfo)
		{
			...
		}
	3、插槽在组件中显示
		this.props.children;
		
	4、将错误处理函数当作参数传递给边界组件
		<边界组件 xx={(?,??)=><p>组件错误</p>}> 
			<可能错误组件 />
		</边界组件>
		
	5、在边界组件中,处理错误判断,如果错误,使用错误处理函数返回相应内容

  方式二:使用第三方库
  	cnpm install -D react-error-boundary
	
	import {ErrorBoundary} from 'react-error-boundary'
      <ErrorBoundary
        FallbackComponent={组件名}  错误时渲染的组件,组件接收两个参数字{error,resetErrorBoundary}
        onReset={() => setExplode(false)}		调用resetErrorBoundary后,修正错误时调用的函数
        resetKeys={[explode]}		可选,当错误发生的组件状态,当状态改变后,会重新渲染
      >
        {explode ? <Bomb /> : null}
      </ErrorBoundary>

代码示例:

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值