在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue中,為什么我子組件,無法監(jiān)控到父組件數(shù)據(jù)的變化?

vue中,為什么我子組件,無法監(jiān)控到父組件數(shù)據(jù)的變化?

父組件代碼:

將bettingObjectProp對象的leagueBettingObjectId屬性給子組件傳進去;

html:

<pool-table :betting-object-id="bettingObjectProp.leagueBettingObjectId"></pool-table>

js:

bettingObjectProp(){
    console.log('外層對象變化1234566')
    if(!this.visible){
      this.dateProp = new Date(this.bettingObject.earliestMatchTime)
      return Object.assign({}, this.bettingObject)
    }else {
      return Object.assign({}, this.bettingObject)
    }
  }
  

console.log('外層對象變化1234566') 控制臺總是能把這個打印出來

子組件:

props: ['bettingObjectId'],

watch: {
  bettingObjectId() {
    console.log('內(nèi)層知曉裱花')
    this.queryPoolByBettingObjectId()
  }
}, 

子組件的console.log總是無法打印出來,這是為什么啊,再created()里面可以打印

修改代碼依然不可以

<pool-table :betting-object="bettingObjectProp"
            :betting-object-id="bettingObjectProp.leagueBettingObjectId"></pool-table>
            

子組件:

bettingObject() {
    console.log('內(nèi)層知曉裱花')
    this.queryPoolByBettingObjectId()
  }
回答
編輯回答
命于你

從你給的代碼中我沒有看到leagueBettingObjectId這個屬性,更沒有看到它的變化。
你的console.log('外層對象變化1234566')也不是對leagueBettingObjectId這個屬性的監(jiān)聽,之所以每次都會有輸出是因為每次都掉訪問了bettingObjectProp。

如果沒有leagueBettingObjectId傳遞到子組件的bettingObjectId,子組件自然監(jiān)聽不到它的變化。

2018年3月9日 02:02
編輯回答
她愚我

使用Vue.set( target, key, value )試試

2017年4月3日 12:18
編輯回答
不舍棄

已解決,

因為我定義了computed屬性之后沒有使用,必須使用之后才能檢測到變化

2017年11月16日 00:16