如果用户状态登录为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" />;
}
});
} `
答案 0 :(得分:1)
如果要轻松重定向,可以使用以下代码:
if (your_condition) {
window.location.href = 'your/path';
}
与JavaScript
通用。
答案 1 :(得分:0)
您可以使用历史记录对象
history.push("/login");
或
在render方法中检查this.user_unsb
的值,
if(this.user_unsb){
return <Redirect to="/login" />;
}
// return your component jsx;
希望这可以为您提供帮助!