Я не уверен, является ли это проблемой с моими средствами отображения реагирующих компонентов в зависимости от того, вошел ли пользователь в систему или это проблема с тем, как я обрабатываю аутентификацию пользователя с помощью firebase. По сути, как только пользователь входит в систему, они возвращаются на страницу входа в систему, прежде чем они могут даже просматривать нужную страницу для входа. Вот мой код для обработки отображения страницы авторизации
class Portal extends Component {
constructor(props) {
super(props)
this.state = {
user: {},
}
}
componentDidMount() {
this.authListener()
}
authListener = () => {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
this.setState({ user })
console.log(user)
} else {
this.setState({ user: null })
console.log(user)
}
})
}
loginHandler = (username, password) => {
firebase.auth().signInWithEmailAndPassword(username, password).then(() => {
}).catch((err) => {
console.error(err)
})
}
logoutHandler = () => {
firebase.auth().signOut()
}
render() {
return (
<div>
{this.state.user ?
(<PortalMain
logoutHandler={this.logoutHandler}
/>) :
(<Login
loginHandler={this.loginHandler}
/>)}
</div>
)
}
}
export default Portal