我在Nuxtjs中使用vue-isotope,我无权访问filterText数据变量,有人可以帮助我吗?
data: () => ({
filterText: null,
option: {
getFilterData: {
filterByText: function(itemElem) {
console.log(this.filterText) // undefined
}
}
}
}
答案 0 :(得分:1)
您需要保留this
函数的data
上下文。您必须将相同的this
上下文传递给filterByText
函数。
Normal function
有其自己的this
上下文,因此如果使用normal function
,则无法使用this
访问外部上下文中的对象。
shorthand function
或arrow function
没有自己的this
上下文。在这种情况下,this
上下文不会被覆盖,因此您需要使用arrow function
来访问父级的this
上下文。
尝试下面的代码,看看它是否可以解决您的问题
data() {
return{
filterText: "im filter",
option: {
getFilterData: {
filterByText: (itemElem) =>{
console.log(this.filterText) // im filter
}
}
}
}
}
这是javascript
的概念,与vue
或nuxt
无关
This article将使您了解arrow function
的含义