0

我按照此处所述实现了 React 错误边界:https ://reactjs.org/docs/error-boundaries.html

当函数组件中产生异常时,它按预期工作,但是,今天我得到一个白屏,我只是注意到异常来自组件的 Render 部分。

这是我的 ErrorBoundary 组件:

  export class ErrorBoundary extends React.Component {  
  static getDerivedStateFromError(error: Error) {
    console.error(error);
  }
  render() {
    return this.props.children; 
  }
}

其实现如下:

export default function App() {
 return (
 <ErrorBoundary>
    <ChildComponent />
 </ErrorBoundary>
);
}

子组件:

interface Item {
      name: string;
      value: number;
   }

export const ChildComponent: React.FC = () => {
 const [collection, setCollection] = useState<Item[]>([]);
 
 return (
 <>
   <button
     onClick={() => console.log(collection[0].name)}>//this throws a console.error but the component keep mounted correctly
     Click
     {collection[0].name}//this throws a console.error and a white screen
   </button>
 </>
);
}

我想知道我能做些什么来处理这种类型的异常,因为不可避免地会出现这些可能出现错误且白屏不理想的情况。

4

0 回答 0