ErrorBoundary заменяет текущее содержимое на fallbackRender вместо добавления его сверху

#reactjs #error-handling #react-error-boundary

Вопрос:

Я пытаюсь отобразить баннер с сообщением об ошибке в верхней части страницы/компонента, который выдает ошибку. Ошибка вызвана вызовом API, поэтому я использую как крючок, так и компонент из react-error-boundary.

Я могу поймать ошибку и отобразить баннер, но я не могу понять, как отобразить его в верхней части страницы вместо того, чтобы заменять все целиком. Я думал, что это то, что должен делать fallbackRender, но он по-прежнему показывает баннер и ничего больше.

Это упрощенная версия моей текущей настройки:

AlertBanner.js

     const AlertBanner = ({ error }) => {
      return <Container >{error}</Container>;
    };
 

App.js

   import { ErrorBoundary } from "react-error-boundary";
    const App = () => {
      return (
       <ErrorBoundary fallbackRender={AlertBanner}>
         <Login />
       </ErrorBoundary>
      )
    }
 

Login.js

  const Login = () => {
 const handleError = useErrorHandler();
 const login = () => {
loginService.login(credentials).then(setUser, handleError);
                  };
 return (
    <div className={classes.container}>
      <FullScreenImage />
      <form className={classes.login} onSubmit={handleSubmit}>
      // [...]
      </form>
    </div>
  );
 

Комментарии:

1. по css добавьте позицию: абсолютную и z-индекс :1

2. CSS, похоже, не является проблемой. Больше ничего не отображается, кроме баннера.