请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

登陆以后store里面的数据是怎么回事?

视频开头。在login.vue 里面。
store.dispatch(‘loginAndFetch’, payload).then(() => {
createMessage(‘登陆成功,3秒以后跳转首页’, ‘success’);
setTimeout(() => {
// 成功登陆,跳转到首页
router.push(’/’);
console.log(store.state.user.isLogin);// true
}, 3000);
}).catch(e => {
console.log(e);
});

登陆成功后页面跳转首页,控制台打印出来的store.state.user.isLogin 是true 。
但是为什么这个时候再次刷新页面,在路由前置守卫那里store.state.user.isLogin 就是false了?搞不明白?

正在回答 回答被采纳积分+3

1回答

提问者 weixin_慕田峪131215 2021-01-03 23:47:38

在已登录,(这个时候本地js文件里的user.isLogin 被更改成true)并且在create路由页面下,刷新页面。此时,user.isLogin 是false。这是由于刷新页面,重新请求网络而来的js文件里面保存的user.isLogin 默认依然是false。所以逻辑上的已登录状态(user.isLogin) 会因为刷新页面而变成未登录状态(user.isLogin=false)。

所以代码语义上,user.isLogin 和 "用户是否已登录“ 这个逻辑关联有瑕疵。https://img1.sycdn.imooc.com//szimg/5ff1e70409ea758515121878.jpg

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信