Почему проталкивание истории React Router иногда не отображает новый компонент?

Я видел эту проблему, заданную ранее при переполнении стека, но дело в том, что история была обновлена, но новый компонент НИКОГДА не отображался. В моем случае иногда это работает, а иногда нет.

Я использую объект истории, который передается в мой компонент через реквизит.

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

this.props.history.push("/home");

Странно то, что иногда они перенаправляются правильно, но в других случаях URL-адрес браузера обновляется, а домашний компонент НЕ отображается.

Вот файл, который отображает мои маршруты:

<Switch>
  <PrivateRoute exact path='/home' authed={this.state.authUser} component={Home}/>
  <PrivateRoute exact path='/new' authed={this.state.authUser} component={NewPhone}/>
  <Route exact path='/login' component={Login}/>
  <Route exact path='/' component={Root}/>
  <Route exact path='/signup' component={Signup}/>
</Switch>

Вот также компонент PrivateRoute, который я использовал:

const PrivateRoute = ({ component: Component, authed,...rest }) => (
  <Route {...rest} render={props => (
    authed !== null ? (
      <Component {...props} authed={authed} />
    ) : (
      <Redirect to={{
        pathname: "/login",
        state: { from: props.location }
      }}/>
    )
  )} />
);

Если потребуется дополнительная информация, я буду рад предоставить ее. большое спасибо

0 ответов

Другие вопросы по тегам