亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過vuex更新異步更新數據,其他頁面怎么在異步更新完畢之后獲取數據?

通過vuex更新異步更新數據,其他頁面怎么在異步更新完畢之后獲取數據?

幕布斯7119047 2019-02-26 20:20:13
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問題;請問這個問題應該怎么解決???
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

不用想這么復雜,沒有獲取到this.userInfo前加個loading狀態,比如通過其中一個存在參數判斷

computed: {
    isLoading(){        return this.userInfo.token ? true : false;
    }
},
watch: {
    isLoading: {
        handler: function(val){            if(val){// 已獲取
                console.log("start...")
            }
        },
        immediate: true
    }
}

等獲取到再執行你的代碼


查看完整回答
反對 回復 2019-02-26
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

1:等接口返回后再作跳轉
2:給this.userInfo設置默認值,避免undefined,在組件模板進行判斷,如果未返回就不渲染

查看完整回答
反對 回復 2019-02-26
  • 2 回答
  • 0 關注
  • 2676 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號