通过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问题;

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


幕布斯7119047
浏览 2629回答 2
2回答

回首忆惘然

不用想这么复杂,没有获取到this.userInfo前加个loading状态,比如通过其中一个存在参数判断computed: {     isLoading(){        return this.userInfo.token ? true : false;     } }, watch: {     isLoading: {         handler: function(val){            if(val){// 已获取                 console.log("start...")             }         },         immediate: true     } }等获取到再执行你的代码

长风秋雁

1:等接口返回后再作跳转2:给this.userInfo设置默认值,避免undefined,在组件模板进行判断,如果未返回就不渲染
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Vue.js