Vue.js this 在计算属性中未定义
我有以下带有模型 selectedProp
的输入标签:
I have following input tag with model selectedProp
:
<input type="text" v-model="selectedProp" />
我想遍历这样的项目:
<div v-for="item of filteredItems">{{item.prop}}</div>
这是组件的脚本:
export default {
name: 'App',
data() {
return {
items: [],
selectedProp: "",
projects: [],
errors: []
}
},
created() {
axios.get(`${URL}`)
.then(response => {
// JSON responses are automatically parsed.
this.items = response.data;
})
.catch(e => {
this.errors.push(e)
});
},
computed: {
filteredItems() {
if(this.selectedProp) {
console.log(this.selectedProp);
return this.items.filter(function (item) {
return item.prop == this.selectedProp;
});
}
return this.items;
}
},
}
错误
这是在计算属性中未定义的
this is undefined inside computed property
推荐答案
在这种情况下,您可以使用可以访问 this
对象的箭头函数
In this case you could use arrow function which has access to this
object
return this.items.filter( (item)=> {
return item.prop == this.selectedProp;
})
相关文章