如何让反应电子忽略未定义的错误?

Gan*_*ank 11 javascript reactjs electron

在此输入图像描述 在此输入图像描述

在Windows上反应电子,如果A为null,则调用A.test将使应用程序停止工作,然后用户必须关闭应用程序并重新启动它.如何让react忽略错误,并继续工作.代码有很多A.test,我无处可写if(A) A.test.如果无法解决此问题,我可以在Web视图上打印错误吗?所以我没有远程访问用户的计算机来查看控制台错误.

Gat*_*ico 7

注意

我认为解决方案是使用反应错误边界,如控制台中所建议的那样.

您已经指出您正在使用错误边界,因此在使用此小提琴测试您的方案后,我认为您的实现可能不正确.


鉴于ErrorBoundary文档中的类似实现:

class ErrorBoundary extends React.Component {
  state = { hasError: '' };
  render() {
    return this.state.hasError ? (
      <span>Oops! Something went wrong:<br />{this.state.hasError}</span>
    ) : this.props.children;
  }
}
ErrorBoundary.getDerivedStateFromError = (error) => ({ hasError: error.toString() });
Run Code Online (Sandbox Code Playgroud)

该组件将呈现回落时,其任何的孩子打破.

错误边界是React组件,它们在其子组件树中的任何位置捕获JavaScript错误,记录这些错误并显示回退UI

它看起来类似于:

<MyReactApp>
  <ErrorBoundary>
    <ChatContent />
  </ErrorBoundary>
</MyReactApp>
Run Code Online (Sandbox Code Playgroud)

现在任何错误ChatContent都会被抓住,ErrorBoundary让你有机会渲染回退,如:

Oops! Something went wrong:
ReferenceError: test is not defined
Run Code Online (Sandbox Code Playgroud)