Я использую Next. js с аутентификацией redux и firebase.
Я пытаюсь проверить, вошел ли пользователь в систему перед тем, как получить доступ к некоторым частным страницам.
Я создал компонент под названием AdminLayout
, который обернут вокруг каждой частной страницы. Я получаю currentUser
в качестве реквизита, используя mapStateToProps
, но я не получаю значение при первом запуске.
// admin-layout.component.jsx
// Imports
class AdminLayout extends React.Component {
componentDidMount() {
console.log(this.props.currentUser);
// if (this.props.currentUser) {
// if (this.props.currentUser.currentUser.role != "admin") {
// Router.push("/admin/login");
// }
// }
// if (!this.props.currentUser) {
// Router.push("/admin/login");
// }
}
render() {
return (
<React.Fragment>
// Irrelevant code here
{this.props.children}
// Irrelevant code here
</React.Fragment>
);
}
}
const mapStateToProps = (state) => ({
currentUser: state.user.currentUser,
});
export default connect(mapStateToProps)(AdminLayout);
Любой способ преодолеть эту ситуацию и разрешить только аутентифицированным пользователям доступ к частным страницам ?