Маршрут входа не отображается при выходе из системы - PullRequest
0 голосов
/ 26 ноября 2018

Я новичок в реакции JS.Теперь у меня есть личный маршрут.

 const PrivateRoute = ({ component: Component, isFetching, hasUserLogIn, path, ...rest }) => {
  hasUserLogIn = localStorage.getItem("access_token");
  if (hasUserLogIn !== undefined && hasUserLogIn !== null) {
    hasUserLogIn = true;
  } else {
    hasUserLogIn = false;
  }
  console.log("hasUserLogIn",hasUserLogIn);
  return hasUserLogIn ?
    (
      <Route
        {...rest}
        path={path}
        component={Component}
      />
    )
    :
    (
      <Redirect
        to={{
          pathname: "/login",
          state: { from: path }
        }}
      />
    )
};


  <div>
        <Router history={history}>
          <div>
            {this.props.isFetching && <Loading />}
            <Switch>
              <PrivateRoute exact path="/:job?" component={LandingScreen} />
              <PrivateRoute exact path="/quiz-setup/:job" component={QuizSetupMain} />
              <PrivateRoute exact path="/quiz-questions" component={FetchedQuestionComponent} />
              <Route exact path="/login" component={LoginComponent} />
              <Route exact path="/*" component={NotFound} something="foo" />
            </Switch>
          </div>
        </Router>
      </div>
    )

handleLogout = () => {
    this.props.logoutUser();
  }

Здесь первый, как только я вхожу в систему.Итак, при успешном входе в систему я написал:

history.push('/'); then it redirects to the LandingScreen Component.

Теперь у меня есть один выпадающий список, при изменении которого я добавляю :job параметр в маршрут, который похож на

* 1009.*onchange,
 history.push({
    pathname: "/" + `${jdId}`
  });

Итак, снова выполняется рендеринг компонента LandingScreen.

Теперь, при нажатии кнопки выхода из системы,

Я хочу перенаправитьиспользовать для страницы входа, которая /login.

Итак, при выходе из системы, что я делаю,

localStorage.clear();
    history.push('/');

, так что при этом он не рендерит LoginComponent, а также делает маршрутне получать изменения, но если я удаляю :job? из маршрута, который он перенаправляет на вход в систему, я имею в виду визуализацию компонента входа в систему.

Может ли кто-нибудь помочь мне с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...