在我的Vue挂载代码中,我通过this.test()调用功能测试。可以按预期工作。
但是,当我从新的ResizeObserver函数调用this.test()时,却出现错误
this.test不是函数
我知道这是因为现在this
指向resizeObserver。我不明白的是我应该在那里使用。删除它也会产生错误。
我有以下Vue代码
mounted: function() {
this.test();
new ResizeObserver(function() {
this.test();
}).observe(this.g("tC"));
},
methods: {
test: function() {}
....
}
答案 0 :(得分:1)
您应该将“ this”绑定到传递给ResizeObserver的函数上
'SELECT a, b FROM ' . \App\Entity\Animals:class . ' a
JOIN a.category b'
或者使用箭头函数(如果您的环境支持ES6),因为箭头函数使用外部作用域的“ this”值:
mounted: function() {
this.test();
new ResizeObserver(function() {
this.test();
}.bind(this)).observe(this.g("tC"));
},
答案 1 :(得分:1)
它对我来说是这样的
mounted: function() {
$vm = this;
new ResizeObserver(function() {
$vm.test();
}).observe(this.g("tC"));
},
methods: {
test: function() {}
....
}
答案 2 :(得分:0)
使用箭头功能绑定范围
new ResizeObserver(()=> { //--> Arrow Function
this.test();
}).observe(this.g("tC"));