通过vuex更新异步更新数据,其他页面怎么在异步更新完毕之后获取数据?

a.vue中有个http请求,响应之后this.$store.commit('userInfo', userInfo);

在b.vue页面通过computed获取更新之后的数据

userInfo(){        return this.$store.state.userInfo
      },

b.vue页面中通是有个方法需要获取此数据:this.userInfo

当页面刷新的刷新的时候,a.vue页面中的页面请求可能还没有完成,b.vue 页面就要获取 数据了,导致出现undefined问题;

请问这个问题应该怎么解决???


狐的传说
浏览 549回答 1
1回答

潇潇雨雨

不用想这么复杂,没有获取到this.userInfo前加个loading状态,比如通过其中一个存在参数判断computed: {     isLoading(){        return this.userInfo.token ? true : false;     } }, watch: {     isLoading: {         handler: function(val){            if(val){// 已获取                 console.log("start...")             }         },         immediate: true     } }等获取到再执行你的代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Vue.js