数据对象无法在 VUE js 3 中的计算属性内求和

Posted

技术标签:

【中文标题】数据对象无法在 VUE js 3 中的计算属性内求和【英文标题】:Data Object unable to summation inside the computed properties in VUE js 3 【发布时间】:2021-07-05 14:03:45 【问题描述】:

让我们看看 vue.js 3 中的以下代码段,

<template>
  <div>
        <h2>Computed Total - getPrice()</h2>
  </div>
</template>

<script>
export default 
    name: "ComputedProperties",
    data()
        return
            items: [
                
                    id: 1,
                    title: 'TV',
                    price: 100,
                ,
                
                    id: 2,
                    title: 'Phone',
                    price: 200,
                ,
                
                    id: 3,
                    title: 'Laptop',
                    price: 300
                
            ]
        
    ,
    computed: 
        getPrice()
            return items.reduce((total, curr) => (total = total + curr.price), 0)
        
    

</script>

运行此代码后显示,error 'items' is not defined no-undef 正如我们所知,计算属性不需要声明任何参数。那么代码有什么问题呢?

【问题讨论】:

【参考方案1】:

您的代码存在一些问题:

    使用计算属性时,不要使用() - 它是属性,而不是函数

&lt;h2&gt;Computed Total - getPrice &lt;/h2&gt;

    datacomputedmethods 的所有成员在 Vue 组件的 script 部分使用时,必须用 this 引用 ...例如 this.items
computed: 
        getPrice() 
            return this.items.reduce((total, curr) => total + curr.price, 0)
        
    

【讨论】:

我已将其更改为

Computed Total - getPrice

但这里仍然存在同样的问题...:(

以上是关于数据对象无法在 VUE js 3 中的计算属性内求和的主要内容,如果未能解决你的问题,请参考以下文章

vue.js

HTML中的Vue JS无法识别添加的对象和属性

Nuxt.js Typescript - 尝试访问计算属性中的数据对象时出错

Vue.js 计算属性

Vue 对象中的计算值函数被触发

Vue.js - 如何在数组对象上实现计算属性?