Vue.js this 在计算属性中未定义

Posted

技术标签:

【中文标题】Vue.js this 在计算属性中未定义【英文标题】:Vue.js this is undefined inside computed property 【发布时间】:2019-03-18 18:23:22 【问题描述】:

我有以下带有模型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;

    
  ,

错误

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

【问题讨论】:

【参考方案1】:

在这种情况下,您可以使用可以访问this 对象的箭头函数

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

【讨论】:

以上是关于Vue.js this 在计算属性中未定义的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js计算属性不更新

laravel中的vue js..计算方法未定义

使用 Vue.js 中的方法过滤计算属性的数组

微信小程序实现computed计算属性

Vue 中未调用计算属性集

Vue 中未调用计算属性集