Почему проталкивание истории 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 }
}}/>
)
)} />
);
Если потребуется дополнительная информация, я буду рад предоставить ее. большое спасибо