js这在计算属性中是未定义的

js这在计算属性中是未定义的

本文介绍了Vue.js这在计算属性中是未定义的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下型号为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对象的箭头功能

In this case you could use arrow function which has access to this object

 return this.items.filter( (item)=> {
      return item.prop == this.selectedProp;
    })

这篇关于Vue.js这在计算属性中是未定义的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-10 16:22