本文转载自微信公众号《JS日报》,作者慧慧。转载本文请联系JS每日一问公众号。1.哪里不对?在我们日常的代码编写中是很常见的。比如在React项目中组件中写JavaScript代码错误,会导致React内部状态被破坏,导致整个应用崩溃。这不应该发生。React作为一个框架,对于错误处理也有自己的解决方案2.Howtodo为了解决错误导致整个应用崩溃的问题,react16引用了“错误边界”的新概念。错误边界是一种React组件。组件可以捕获其子组件树中任何位置发生的JavaScript错误,并在显示降级UI的同时打印它们,而不渲染那些子组件树崩溃渲染期间的错误边界,生命周期方法和整个组件树在构造函数中捕获错误的两个条件形成错误边界组件:使用staticgetDerivedStateFromError()使用componentDidCatch()抛出错误后,请使用staticgetDerivedStateFromError()渲染备用UI,并使用componentDidCatch()打印错误信息,如下:classErrorBoundaryextendsReact.Component{constructor(props){super(props);this.state={hasError:false};}staticgetDerivedStateFromError(error){//更新状态,以便下次渲染可以显示退化的UIreturn{hasError:true};}componentDidCatch(error,errorInfo){//也可以向服务器上报错误日志logErrorToMyService(error,errorInfo);}render(){if(this.state.hasError){//可以自定义降级后的UI和renderreturn
