天天看點

Vue中偵聽器watch時,調用this時出現undefined問題

watch偵聽器中,我們要将新的值賦給this.a出錯

watch: {
	value: (newV, oldV) => {
	this.a = newV;
	}
}
           

這裡報錯undefined,這裡錯誤的原因是不能寫成箭頭函數。寫成箭頭函數後,this會取上下文,而不是元件裡面的this了,正确寫法為:

watch: {
	value: function(newV, oldV) {
	this.a = newV;
	}
}
           

如下圖:

Vue中偵聽器watch時,調用this時出現undefined問題

看考連結:https://cn.vuejs.org/v2/api/#watch

PS:好吧,雖然問題可以解決,但是具體為什麼不能寫成箭頭函數,講實話,我現在也不懂,知道原理的可以給我評論,非常感謝。