Skip to content

使用errorboundary

默认情况下,如果您的应用程序在渲染期间抛出错误,React将从屏幕上移除其UI,这就导致页面全部都是空白,即使正常的其他组件也会受到影响。为防止这种情况,您可以将UI的一部分包装到错误边界中。错误边界是一种特殊组件,可让您显示一些后备UI而不是崩溃的部分,例如错误消息。第三方react-error-boundary组件支持捕获渲染错误并进行错误处理。

1. 安装errorboundary

cmd
npm i react-error-boundary

2. 使用errorboundary

模拟Head组件报错:

jsx
import { Row, Col, Button } from 'antd'

function Head(){
  return (
    <Row>
      <Col span={24}>
        <Button className={abc}></Button>
      </Col>
    </Row>
  )
}

function App() {
  return (
    <>
      Hello App
      <Head/>
    </>
  )
}
export default App

运行页面空白,控制台报错找不到类样式abc:
Alt text errorboundary库提供的组件ErrorBoundary可以进行错误处理:

jsx
import { Row, Col, Button, Alert } from 'antd'
import { ErrorBoundary } from 'react-error-boundary'

function Head(){
  return (
    <Row>
      <Col span={24}>
        <Button className={abc}></Button>
      </Col>
    </Row>
  )
}

function App() {
  return (
    <>
      Hello App
      <ErrorBoundary fallback={<Alert message="页面出错了!" type="error" />}>
        <Head/>
      </ErrorBoundary>
    </>
  )
}
export default App

Alt text