鍍金池/ 問答/HTML/ 在vue里使用vuex時(shí),組件獲取正常獲取store數(shù)據(jù)

在vue里使用vuex時(shí),組件獲取正常獲取store數(shù)據(jù)

大組件里請(qǐng)求的數(shù)據(jù),使用vuex存儲(chǔ)下來,另一個(gè)組件的子組件無法正常獲取此數(shù)據(jù),如果再點(diǎn)擊另一個(gè)鏈接后再回來則獲取數(shù)據(jù)正常

在tab2組件里created里獲取數(shù)據(jù)

圖片描述

圖片描述

回答
編輯回答
巴扎嘿

如果一個(gè)組件去computed了一個(gè)vuex的變量,正常情況下,這是一種響應(yīng)式的綁定,即vuex的值改變,子組件接收到的也會(huì)改變(此時(shí)頁面也會(huì)自動(dòng)渲染改動(dòng)部分,但不能逆向改變數(shù)據(jù))。而一些vue檢測(cè)不到的操作是不會(huì)引發(fā)上述功能的,比如通過數(shù)組下標(biāo)去修改數(shù)組元素,或者修改數(shù)組長(zhǎng)度。
所以,如果是再父組件獲取了數(shù)據(jù),而此時(shí)沒有引發(fā)compted更新子組件數(shù)據(jù),那么子組件肯定不會(huì)渲染。
可以在子組件watch這個(gè)值,看看父組件獲取了數(shù)據(jù),子組件是不是收到了。記得設(shè)置deep:true

補(bǔ)充:

computed:{
  a(){
    return this.$store.state.a;
  }
},
watch:{
  a:{
    handler:function(val){
      console.log(val);
    }
  }
}
2018年9月16日 23:02
編輯回答
執(zhí)念

求解決辦法...

2018年7月1日 14:05