Мое приложение не может обнаружить изменение состояния, которое происходит при входе пользователя в систему без полного обновления страницы. При обновлении все отображается правильно. Я использую Nuxt и включенный в него модуль аутентификации, описанный здесь - https://auth.nuxtjs.org/.
Вот оператор v-if, который не может обнаружить изменение состояния:
<template v-if="$auth.$state.loggedIn">
<nuxt-link
to="/profile"
>
Hello, {{ $auth.$state.user.name }}
</nuxt-link>
</template>
<template v-else>
<nuxt-link
to="/logIn"
>
Sign In
</nuxt-link>
</template>
Вот метод входа в систему на моей странице входа в систему.
methods: {
async onLogin() {
try{
this.$auth.loginWith("local", {
data: {
email: this.email,
password: this.password
}
});
this.$router.push("/");
}catch(err){
console.log(err);
}
}
}
Я попытался получить состояние через вычисляемое свойство, но получил тот же результат. Я вижу изменение данных хранилища vuex, указывающее на то, что я правильно вошел в систему или вышел из нее на вкладке «Приложение» в Chrome Dev Tools, но Vue Dev, кажется, постоянно указывает, что я вошел в систему. Не уверен, что его хотя просто глючит ..
Я также сталкиваюсь с той же проблемой в обратном порядке при выходе из системы. Вот метод:
async onLogout() {
try{
await this.$auth.logout();
}catch(err){
console.log(err);
}
}
Я рад предоставить дополнительную информацию.