как перенаправить на другую страницу, если условие истинно - PullRequest
0 голосов
/ 29 мая 2019

Я хочу перенаправить, если пользовательское состояние зарегистрировано как true, тогда оно перенаправляет на домашний экран, если при входе в систему показывается состояние, но не перенаправляет на домашний экран.

`componentDidMount() {
//realtime auth state subscriber
this.auth_unsb = firebase.auth().onAuthStateChanged(user => {
  if (user) {
    this.setState({ loggedIn: true });
    //if logged in
    this.handleUser(user);

    //each time user logs in, subscribe to realtime changes for it's doc
    this.user_unsb = this.firebase
      .firestore()
      .collection("users")
      .doc(user.uid)
      .onSnapshot(
        doc =>
          //sync user data to store
          (Store.currentUserDoc = doc.data()),
        e => {}
      );
  } //if logged out
  else {
    this.setState({ loggedIn: false });
    //unsubscribing from realtime user do changes
    if (this.user_unsb) this.user_unsb();
    return <Redirect to="/login" />;
  }
});

} `

Ответы [ 2 ]

1 голос
/ 29 мая 2019

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

if (your_condition) {
    window.location.href = 'your/path';
}

Этот универсальный с JavaScript.

0 голосов
/ 29 мая 2019

Вы можете использовать объект истории,

history.push("/login");

или в методе рендеринга проверить значение this.user_unsb,

if(this.user_unsb){
  return <Redirect to="/login" />;
}

// return your component jsx;

Надеюсь, это поможет вам!

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