[英]Calling Vue method from inside mounted function
在我的 Vue 掛載代碼中,我通過 this.test() 調用函數測試。 這按預期工作正常。
但是,當我從新的 ResizeObserver 函數調用 this.test() 時,出現錯誤
this.test 不是函數
我知道這是因為this
現在指向 resizeObserver。 我不明白的是我應該在那里使用什么。 刪除 this 也會出錯。
我有以下Vue代碼
mounted: function() {
this.test();
new ResizeObserver(function() {
this.test();
}).observe(this.g("tC"));
},
methods: {
test: function() {}
....
}
您應該將“this”綁定到傳遞給 ResizeObserver 的函數
mounted: function() {
this.test();
new ResizeObserver(function() {
this.test();
}.bind(this)).observe(this.g("tC"));
},
或者使用箭頭函數(如果您的環境支持 ES6),因為箭頭函數使用外部作用域的“this”值:
mounted: function() {
this.test();
new ResizeObserver(() => {
this.test();
}).observe(this.g("tC"));
},
它像這樣對我有用
mounted: function() {
$vm = this;
new ResizeObserver(function() {
$vm.test();
}).observe(this.g("tC"));
},
methods: {
test: function() {}
....
}
使用箭頭函數綁定作用域
new ResizeObserver(()=> { //--> Arrow Function
this.test();
}).observe(this.g("tC"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.