Реагировать на маршрутизатор this.props.history.pu sh, подталкивая местоположение, но не отображая компонент - PullRequest
0 голосов
/ 08 мая 2020

У меня это есть в моем приложении. js

      render() {
    //isAuthticated() is async, so we block the rendering until we have the result.
    if (!this.state.authenticationChecked) return null;
    return (
      <div>
        <Switch>
          <PrivateRoute name={"dashboard"} authed={this.state.isAuthenticated} path="/dashboard" render={(props) => <Calendario {...props} logout={this.logout} />} />
          <LifeExpectancyRoute name={"life_expectancy"} path="/lifeExpectancy" render={(props) => <LifeExpectancy {...props} setYearsRedirect={this.setYearsRedirect} />} />
          <Route path="/login" render={(props) => <LoginPage login={this.login} authed={this.state.isAuthenticated} {...props} />} />
        </Switch>
      </div>
    )
  }
}

export default compose(
  withRouter,
  connect(null, mapDispatchToProps)
)(App);

Ant, тогда у меня есть эта функция, которую я вызываю при нажатии на значок

  logout = () => {
    this.setState({
      isAuthenticated : false,
      authenticationChecked: false
    }, () =>{
      this.props.history.push("/dashboard")
    })

  }

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

1 Ответ

0 голосов
/ 08 мая 2020

Это была ошибка моего кода logi c, это помогло

    logout = () => {
    this.setState({
      isAuthenticated : false,
      authenticationChecked: true
    }, () =>{
      this.props.history.push("/login")
    })

  }
...