为什么React Router历史记录推送有时无法呈现新组件?

时间:2018-06-24 16:43:21

标签: reactjs firebase react-router-v4

我已经在Stack Overflow上问过这个问题,但是情况是历史记录已更新,但从未渲染新组件。就我而言,有时有效,有时却无效。

我正在使用通过props传递到组件的历史对象。

我有一些登录用户的逻辑,在解决了诺言之后,我使用下面的代码在成功登录后将其发送到主页。

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

奇怪的是,有时它们已正确重定向,但其他时候浏览器URL已更新,而home组件未呈现。

以下是呈现我的路线的文件:

<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 个答案:

没有答案