'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>

另外,更多的代码通常意味着更多的帮助,否则我们只是在猜测。