1. 程式人生 > >Vue中偵聽器watch時,呼叫this時出現undefined問題

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;
	}
}

如下圖:
在這裡插入圖片描述
看考連結:https://cn.vuejs.org/v2/api/#watch
PS:好吧,雖然問題可以解決,但是具體為什麼不能寫成箭頭函式,講實話,我現在也不懂,知道原理的可以給我評論,非常感謝。