真实应用里,某个组件炸了,并不代表整套系统都必须黑屏。错误边界就像空调系统的保险丝和断路器。
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError() {
return { hasError: true };
}
render() {
if (this.state.hasError) {
return <p>控制面板故障,已切到安全模式</p>;
}
return this.props.children;
}
}