每天30s系列|什么是 React 中的错误边界?

Posted 水煮不是清蒸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天30s系列|什么是 React 中的错误边界?相关的知识,希望对你有一定的参考价值。

回答

错误边界是 React 捕获子组件树中所有 javascript 错误的组件,他可以记录这些错误,并将错误显示在 UI 上来替代组件树的崩溃。

如果类组件定义了一个名为 componentDidCatch 的新生命周期方法,那么他将成为错误边界。
class ErrorBoundary extends React.Component { constructor(props) { super(props) this.state = { hasError: false } }
componentDidCatch(error, info) { // Display fallback UI this.setState({ hasError: true }) // You can also log the error to an error reporting service logErrorToMyService(error, info) }
render() { if (this.state.hasError) { // You can render any custom fallback UI return <h1>Something went wrong.</h1> } return this.props.children }}


加分回答

  • componentDidCatch:用于错误边界,他是实现此方法的组件。他允许组件去捕获其子组件树中任意位置的 JavaScript 错误,打印错误,并使用 UI 展现错误信息。但他可能在未来的版本中被废弃,改用 static getDerivedStatFromError() 来代替。
  • 当任何一个子组件在渲染过程中、在一个生命周期的方法中或在构造函数中发生错误时 static getDerivedStateFromError()componentDidCatch() 将会被调用。




以上是关于每天30s系列|什么是 React 中的错误边界?的主要内容,如果未能解决你的问题,请参考以下文章

每天30s系列|在 React 组件类中如何保证 `this` 为正确的上下文?

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

React错误边界

[react] React v15中怎么处理错误边界?

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

react错误边界