鍍金池/ 問答/HTML/ vue組件中無法獲取state中的值

vue組件中無法獲取state中的值

在vue中,使用vuex,有兩個vue組件文件
第一個vue組件設置了state中searchPoint:{},的其中一個屬性為count

在第二個vue組件中需要用到這個數(shù)據(jù),在computed中是這樣寫的

  computed:{ 
  search_points_count(){
    console.log(this.$store.state);
     return this.$store.state.searchPoint.count; 
   }
  },
       

對這個數(shù)據(jù)進行監(jiān)聽:

watch:{
      search_points_count(val){  
             console.log(val) 
           
      }
    },
    

在瀏覽器中運行后,控制臺會輸出state

clipboard.png

可以看到count是有值的,但是return的值卻沒有,如果將console.log(this.$store.state);換成console.log(this.$store.state.searchPoint.count);發(fā)現(xiàn)對這個值不進行監(jiān)聽了,
只返回了undefined,
但是如果在家state設置的時候設置為searchPoint:{count:0},就會報堆棧溢出

clipboard.png

這個問題哪位大神能幫我解決一下下,焦頭爛額了~~

如何獲得并監(jiān)聽這個值呢??

回答
編輯回答
哎呦喂

你在vuex 中的 state 是如何定義的是否有初始值
如果你的state = {searchPoint: {}, .....}
設置count時使用state.searchPoint.count = *
vue是監(jiān)聽不到count的變化的
你需要初始化時設置state = {searchPoint: {count: ''}, .....}
或者給count赴值時改變searchPoint的指向,
如state.searchPoint = {count: **, ....}
或者state.searchPoint=Object.assign({}, state.searchPoint, {count: *})

2017年12月30日 14:15