鍍金池/ 問答/網(wǎng)絡安全  HTML/ vue的watch屬性,當監(jiān)聽的值改變了卻不能觸發(fā)事件

vue的watch屬性,當監(jiān)聽的值改變了卻不能觸發(fā)事件

我在子組件中用watch監(jiān)聽了父組件傳過來的值,但是當這個值改變了之后,watch并沒有被觸發(fā)

props:[
  'chartMessage'
],
watch:{
  chartHandle(val){
    console.log(1111)
  }
},
mounted(){
  this.chartHandle = this.chartMessage;
},
data() {
  return{
    chartHandle:{},
  }
},

我這個chartMessage改變之后,連console.log()也沒有觸發(fā),是怎么回事,求指教。。

回答
編輯回答
真難過

props 內(nèi)部是自帶監(jiān)聽的

多看看文檔

你如果想通過props 傳值觸發(fā)某個事件 可以去給data里面一個值去賦值
然后監(jiān)聽

2017年10月31日 11:02
編輯回答
愛是癌

watch只有在監(jiān)聽的值變化的時候才會觸發(fā),chartMessage初始化的時候不會觸發(fā)watch,只有在父組件再次改變了chartMessage時才會觸發(fā)watch,也就是說至少要有兩次變化

2017年6月2日 05:52
編輯回答
半心人

如果你的chartMessage傳入的是對象,你只改對象內(nèi)的值不會觸發(fā)watch,你可以這么寫:

watch:{
  chartMessage: {
    deep: true,
    handler(val){
        console.log(111)
        this.drawChart(val)
    }
  }
}

如果不是這種情況,建議你做一個小demo復現(xiàn)一下情況,再把所有代碼放出來

2018年3月5日 17:02
編輯回答
涼薄

監(jiān)聽的是 data 里的值

2017年7月19日 15:13
編輯回答
涼汐

講道理不會出現(xiàn)這個情況,給個在線調試的列子看下

2018年9月4日 00:58