如何确保 Vue 在登录成功后立即获取到 localStorage 中的值?

由于登录成功后马上跳转回主页,导致存localStorage操作与路由跳转几乎同时进行,所以跳转回主页后,localStorage还没有存入完成,获取不到用户信息,只有在刷新一下才能获取到值,如何在登陆成功后获取到呢?

user.js里面将用户信息存储到localStorage中:

const actions = {

getUserInfo({

commit,

dispatch,

state

}) {

axios({

method: 'get',

url: '/gateway/api/userInfo',

headers: {

'admin-gateway-token': state.token

}

}).then(res => {

const {

data,

code,

msg

} = res.data

if (code === 0) {

localStorage.setItem('userInfo', data.username)

commit('SET_USERINFO', data)

} else {

console.log('获取人员信息失败:', res)

if (res.data.code === 2000) {

dispatch('app/logOut', {}, {

root: true

})

}

Message({

type: 'error',

message: '获取人员信息失败:' + msg

})

}

}, res => {

Message({

type: 'error',

message: '获取人员信息失败:' + res

})

})

},


回答:

你都用 store 了,设置 localStorage 的时候同时也操作修改一下 state 的值不行么……为啥一定要用 ls 绕一下。


回答:

用 await 等这块逻辑执行完再跳转不行么

以上是 如何确保 Vue 在登录成功后立即获取到 localStorage 中的值? 的全部内容, 来源链接: utcz.com/p/935346.html

回到顶部