Javascript 静态getDerivedStateFromError()
我在看一份关于错误界限的文件。在这种情况下,static getDerivedStateFromError()生命周期如何在没有setState的情况下更新hasrerror的状态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
类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;
}
}