javascript - Vue JS 为另一个计算属性的每个键值运行计算属性

标签 javascript vue.js vuejs2 vue-component

我有一个计算属性:

relateditems () {
 return this.related.find((relation) => {
  return relation.id === this.currentItem.id
 })
},

输出如下:

relateditems:Object
   -KQ1hiTWoqAU77hiKcBZ:true
   -KQ1tTqLrtUvGnBTsL-M:true
   id:"-KQ1if2Zv3R9FdkJz_1_"

我正在尝试创建另一个计算属性,然后循环遍历 relateditems 对象并找到与前两个键的匹配 ID 的关系。

以下行不通,但我认为它给出了思路:

relateditemsdata () {
 let test = []
 for (var key in this.relateditems) {
  this.items.find((relateditem) => {
   relateditem.id === key.id
    test.push(relateditem)
   })
  }
  return test
}

最佳答案

我认为在另一个计算属性中调用计算属性不是一个好方法,因此您可以添加一个观察者属性以观察第一个计算属性并根据该属性更新数据对象属性,例如:

data() {
  return {
    relateditemsdata: [],
  }
},

computed: {
  relateditems() {
    return this.related.find(relation => {
      return relation.id === this.currentItem.id
    })
  },
},

watch: {
  relateditems(val) {
    for (var key in this.relateditems) {
      this.items.find(relateditem => {
        relateditem.id === key.id
        relateditemsdata.push(relateditem)
      })
    }
  },
},

关于javascript - Vue JS 为另一个计算属性的每个键值运行计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57538588/

相关文章:

javascript - 如何打印 ajax 响应到 span 类

javascript - 为什么 event.preventDefault() 并不总是有效?

javascript - Highcharts更新数据系列

javascript - 使用映射返回具有键和值的对象

javascript - Nuxtjs 无法在本地主机 :5000 but its working in 127. 0.0.1:5000 中工作

vue.js - Vue 3 包版本不匹配

javascript - js es6类构造函数在构造函数实例化之前运行

vue.js - Vue - 从字符串中渲染一个元素

javascript - Laravel 5 VueJS 不工作

vue.js - 如何将 Vuex 状态的数据克隆到本地数据?