如何将计算的属性值转换为数组变量

时间:2019-02-10 15:48:15

标签: vue.js vuejs2 nuxt.js

我有一个计算属性函数,称为:Total,这实际上是计算称为价格的数组的名称+值对,它是一种引号形式,随着用户逐步完成多步操作,累加了总计。然后将值推入数组以保持环境整洁。

此计算属性允许我在不需任何其他代码的情况下在动态更新的页面上回显总计,我可以简单地使用把手将总计添加到页面上想要的任何地方,例如:{{ total }}

我现在面临的问题是我还希望将'total'的值包含在单独的数组中,或者至少将其添加到数组中,而我似乎无法正确地做到这一点。

获取我的 prices 数组值(默认情况下为空)的工作代码如下:

computed: {
    total: function(){
      var total = [];
      Object.entries(this.prices).forEach(([name, value]) => {
        total.push(value)
      });
      return total.reduce(function(total, num){
        return total + num
      }, 0);
    }
  }

我想在我的计算属性中添加以下内容:

this.quote.totalPrice = total

我尝试过:

computed: {
    total: function(){
      var total = [];
      Object.entries(this.prices).forEach(([name, value]) => {
        total.push(value)
      });
      return total.reduce(function(total, num){
        return total + num
        this.quote.totalPrice = total 
      }, 0);
    }
  }

我什么都没得到吗?

1 个答案:

答案 0 :(得分:1)

您可以使用watch er跟踪计算属性的更改并相应地更新任何变量:

watch: {
  total(newTotal) {
    this.quote.totalPrice = newTotal
  }
}