Vue 首次登录后为何获取不到 Store 值?

vue 首次登录后为何获取不到 store 值?

vue 首次登陆成功进入页面后为何获取不到 store 值?

vue 应用中使用 store 时,偶尔会遇到首次进入页面获取不到 store 值的情况。本文将分析一个常见的原因并提供解决方案。

问题背景

在给定的代码中,开发者使用 mapstate 函数将 store 中的 userinfo 状态映射到计算属性中。在页面上,userinfo.username 能够正常获取到。然而,在方法 gettoptendata 中调用 this.userinfo.username 时,却返回 undefined

解决方案

问题出在 store 中获取的 userinfo 仅包含 username 这一部分,而其他组件需要获取的是完整的 userinfo 对象。在 store 的 getuserinfo action 中,保存到 localstorage 的应该是整个 userinfo 对象,而不是仅 username:

if (code === 0) {
    localStorage.setItem('userInfo', data) // 改为存储整个 userInfo 对象
    commit('SET_USERINFO', data)
} else {
    // ...
}

通过修改 store 中的代码,可以在首次进入页面时正确获取 store 中的完整 userinfo 值。

以上就是Vue 首次登录后为何获取不到 Store 值?的详细内容,更多请关注其它相关文章!