'This' 未定义
'This' is undefined
我使用 Vue-Multiselect https://vue-multiselect.js.org/#sub-getting-started 创建了一个多 select 输入,如下所示
<multiselect v-on:select="myfilter()" v-model="cityF"
:options="cities" placeholder="City" label="name" track-by="name">
</multiselect>
但这在 myfilter 函数中始终未定义。问题是什么?我该如何解决?
提前致谢。
我只是猜测,但是...
1 您使用的是 This
而不是 this
¯\_(ツ)_/¯
这很容易修复,只需使用 'this' 而不是 'This'
2 您可能将函数定义为
methods:{
myfilter: function() {
console.log(this.whyNoWork);
}
}
这不会使用正确的范围,而是使用
methods:{
myfilter: function() {
console.log(this.isWorking);
}.bind(this)
}
或更好
methods:{
myfilter() {
console.log(this.isWorking);
}
}
3 你应该将模板定义为 myfilter
而不是 myfilter()
,除非你想传递一些东西给它
<multiselect v-on:select="myfilter" v-model="cityF"
:options="cities" placeholder="City" label="name" track-by="name">
</multiselect>
另外,更多的代码通常意味着更多的帮助,否则我们只是在猜测。
我使用 Vue-Multiselect https://vue-multiselect.js.org/#sub-getting-started 创建了一个多 select 输入,如下所示
<multiselect v-on:select="myfilter()" v-model="cityF"
:options="cities" placeholder="City" label="name" track-by="name">
</multiselect>
但这在 myfilter 函数中始终未定义。问题是什么?我该如何解决? 提前致谢。
我只是猜测,但是...
1 您使用的是 This
而不是 this
¯\_(ツ)_/¯
这很容易修复,只需使用 'this' 而不是 'This'
2 您可能将函数定义为
methods:{
myfilter: function() {
console.log(this.whyNoWork);
}
}
这不会使用正确的范围,而是使用
methods:{
myfilter: function() {
console.log(this.isWorking);
}.bind(this)
}
或更好
methods:{
myfilter() {
console.log(this.isWorking);
}
}
3 你应该将模板定义为 myfilter
而不是 myfilter()
,除非你想传递一些东西给它
<multiselect v-on:select="myfilter" v-model="cityF"
:options="cities" placeholder="City" label="name" track-by="name">
</multiselect>
另外,更多的代码通常意味着更多的帮助,否则我们只是在猜测。