react错误边界

Posted zhangrenjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react错误边界相关的知识,希望对你有一定的参考价值。

react实际运用中,为了防止某个组件的异常报错,导致整个程序都运行不起来,我们通常封装一个错误的组件:

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;
    }
}

 

调用,当组件出现错误时,加载render返回的内容

<ErrorBoundary render={ (error,errorInfo) => <p>{ ‘加载时发生错误‘ }</p> }>
   <Errors /> {/*出现错误的组件*/}
</ErrorBoundary>

 

以上是关于react错误边界的主要内容,如果未能解决你的问题,请参考以下文章

React拓展 - setState - 路由组件懒加载 - Hooks - Fragment - Context - PureComponent - 插槽 - 错误边界 - 组件通信方式总结(代码片

React错误边界

使用 webpack devtool=eval 显示跨域 React 错误边界错误?

React开发(209):react错误边界

Unity中timeline出现脚本错误怎么解决

react错误边界