如何在反应中正确使用反应错误边界?

How to use react-error-boundary properly in react?

我已经实现了 react-error-boundary npm 库的一个示例。但是好像没有正常使用。

import * as React from 'react';
import { ErrorBoundary } from 'react-error-boundary';

function ErrorFallback({ error }) {
  return (
    <div role="alert">
      <p>Something went wrong:</p>
      <pre style={{ color: 'red' }}>{error.message}</pre>
    </div>
  );
}

function Greeting({ subject }) {
  return <div>Hello {subject.toUpperCase()}</div>;
}

function Farewell({ subject }) {
  return <div>Goodbye {subject.toUpperCase()}</div>;
}

function App() {
  return (
    <ErrorBoundary FallbackComponent={ErrorFallback}>
      <Greeting />
      <Farewell />
    </ErrorBoundary>
  );
}

export default App;

报错信息如下:

似乎 ErrorFallback 组件没有渲染。我想我做错了什么破坏了代码。

这是开发期间错误边界的预期行为。按右上角的关闭(X)按钮隐藏错误堆栈,您将看到 Error Boundary Fallback

生产中,将不会显示错误堆栈,用户只会看到错误边界回退。