Если backendserver не работает, то как обработать Reactjs с помощью Axios - PullRequest
0 голосов
/ 07 апреля 2020

Текущий Я использую Ax ios для извлечения данных из бэкэнда, если бэкэнд не работает, то как его обработать. Прямо сейчас, если пользователь имеет прямой доступ к какой-либо странице в приложении без входа в систему, он покажет ему страницу с пустыми данными. Поскольку бэкэнд не работает, он также не будет перенаправлен на страницу 403.

Page without data , can be accessed without login

Когда бэкэнд выключен, пользователь должен быть перенаправлен на другую страницу и он не должен видеть ни одной страницы, если он непосредственно пытается получить к ней доступ.

Я использую Redux для управления состоянием React-Router для Routing Axe ios для получения данных

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете использовать Redirect и privateRoute. Компонент PriveRoute:

function PrivateRoute({ component: Component, ...props }) {
  const isAuthenticated = true or false;
  return (
    <Route
      render={props =>
        isAuthenticated ? (
          <Component {...props} />
        ) : (
          <Redirect
            to={{
              pathname: "/login",
              state: { from: props.location }
            }}
          />
        )
      }
      {...props}
    />
  );
}

export default PrivateRoute;

и используйте его в своем BrowserRouter:

<PrivateRoute
    exact
    path='/home'
    component={<Home />}
/>

. Вы можете проверить, работает ли ваш бэкэнд, и установить состояние в соответствии с ним и в * 1009. * проверьте это состояние, и если оно не перенаправлено на Component, вы хотите, как login.

...