国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

解決vue偵聽器watch,調(diào)用this時出現(xiàn)undefined的問題

瀏覽:3日期:2022-11-08 13:14:44

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

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

這里報錯undefined,這里錯誤的原因是不能寫成箭頭函數(shù)。寫成箭頭函數(shù)后,this會取上下文,而不是組件里面的this了,正確寫法為:

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

如下圖:

解決vue偵聽器watch,調(diào)用this時出現(xiàn)undefined的問題

看考鏈接:https://cn.vuejs.org/v2/api/#watch

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

來自yyf994的評論解答:

var app = new Vue({ el: ’#app’, data: { a: 1 }, watch: { a:()=> { console.log(this) } }, methods: { onClick() { this.a++; } } })

在babel 編譯后是這樣子的

'use strict'; var _this = void 0; var app = new Vue({ el: ’#app’, data: { a: 1 }, watch: { a: function a() { console.log(_this); } }, methods: { onClick: function onClick() { this.a++; } }});

因為箭頭函數(shù) 的 函數(shù)體內(nèi)的this對象,就是定義時所在的對象,而不是使用時所在的對象。

補充知識:vue watch用法和沒反應(yīng)的原因 =>看看下面是不是還有一個watch

我就廢話不多說了,大家還是直接看代碼吧~

watch: { stop: function(newVal, old){ //非josn用法 console.log(newVal) }, ’form.fdnDct’: function(newVal, old){ //josn用法 console.log(newVal) }, } //這也是一種用法 watch: { ’browse_integral_info.buy’:’RMB’, //購買積分轉(zhuǎn)化成人民幣 ’browse_integral_info.give’:’GIVE’, //完成邀請瀏覽任務(wù)贈送 ’bargain_integral_info.give’:’BARGAINGIVE’, deep:true, }, methods: { RMB: function(){ this.RMBs = this.browse_integral_info.buy/100 }, },

以上這篇解決vue偵聽器watch,調(diào)用this時出現(xiàn)undefined的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Vue
主站蜘蛛池模板: 武穴市| 旬阳县| 屏边| 获嘉县| 乌兰察布市| 手机| 汤原县| 德兴市| 肇庆市| 始兴县| 凌源市| 新建县| 德钦县| 阜阳市| 名山县| 淅川县| 横峰县| 西和县| 兴安盟| 台安县| 南江县| 五莲县| 泽州县| 芒康县| 宝山区| 吐鲁番市| 冷水江市| 霍林郭勒市| 盐池县| 沧源| 昆明市| 巫山县| 琼结县| 罗源县| 彰化县| 乐东| 巴青县| 双辽市| 鄢陵县| 嘉鱼县| 陕西省|