Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 静态getDerivedStateFromError()_Javascript_Reactjs_React Native_React Lifecycle - Fatal编程技术网

Javascript 静态getDerivedStateFromError()

Javascript 静态getDerivedStateFromError(),javascript,reactjs,react-native,react-lifecycle,Javascript,Reactjs,React Native,React Lifecycle,我在看一份关于错误界限的文件。在这种情况下,static getDerivedStateFromError()生命周期如何在没有setState的情况下更新hasrerror的状态 类ErrorBoundary扩展React.Component{ 建造师(道具){ 超级(道具); this.state={hasError:false}; } 静态getDerivedStateFromError(错误){ 返回{hasError:true}; } render(){ if(this.state.h

我在看一份关于错误界限的文件。在这种情况下,static getDerivedStateFromError()生命周期如何在没有setState的情况下更新hasrerror的状态

类ErrorBoundary扩展React.Component{
建造师(道具){
超级(道具);
this.state={hasError:false};
}
静态getDerivedStateFromError(错误){
返回{hasError:true};
}
render(){
if(this.state.hasError){
返回出了问题的地方。;
}
返回此.props.children;
}
}

这只是一个简单的例子

React负责执行生命周期方法(以及渲染)。 如果是这样,React可以将这些方法包装到try/catch中,通过执行getDerivedStateFromError方法和随后的setState来处理错误

这种方法的静态性质需要排除对部件产生任何副作用的可能性

  class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  static getDerivedStateFromError(error) {
    return { hasError: true };
  }

  render() {
    if (this.state.hasError) {
      return <h1>Something went wrong.</h1>;
    }

    return this.props.children; 
  }
}