Lorsque je suis logiqué, ma navigation NAVBAR pour la première fois n'a pas reconnu cela, mais lorsque je rafraîchis la page, cela savait simplement. Dans cet exemple, il n'a pas d'abord Console.log («logiqué») avant d'actualiser la page. Voici le code
APP.COMPONENT.HTML P>
login(){
// Get phoneNumber and password
const val = this.loginForm.value
if(val.phoneNumber && val.password){
this.auth.login(val.phoneNumber, val.password).subscribe(
(next) => {
console.log('User is login')
// Get userId, token, userTypeId, save at localStorage
this.user = next
console.log(this.user)
localStorage.setItem('userId', this.user.data.userId)
localStorage.setItem('token', this.user.token)
localStorage.setItem('userTypeId', this.user.data.userType.id)
// Set isLoggined = true
localStorage.setItem('isLoggined', 'true')
this.router.navigateByUrl('/')
},
(err) => {
console.log(err)
}
)
}
}
3 Réponses :
dans votre auth.service.ts peut-être avoir un émetteur d'événement qui incendie un événement lorsque quelqu'un est "logiqué" puis dans votre composant NAVBAR, vous devez écouter cet événement. Si vous pouvez publier davantage de votre code, nous pouvons voir ce que vous essayez de faire et d'où votre problème est. P>
Je viens de publier un autre code sur la connexion et la déconnexion: D
Le point est que ma valeur liquidative n'a pas reconnu si l'utilisateur est logiqué jusqu'à rafraîchir la page. Je pense que c'est dû à la navigation, alors je change pour utiliser une autre syntaxe pour rediriger la page et fonctionnait
login.component.ts p>
NAV.COMPONENT.TS strong> auth.service.ts strong> p> login.component.ts strong> p> après Pour plus d'informations: p> sujet de comportement p> p> S'abonner code> Le isloggedin $ code> événement . Chaque statut de temps changera, les modifications seront reflétées dans la fonction souscrite code>. P>
J'ai le sentiment que cela a à voir avec un appel asynchrone à tout votre point de connexion de connexion est. Cet appel ne met probablement pas correctement à jour correctement l'état interne de l'application en cours d'exécution dans le navigateur.