哪些年同桌遇到的bug③

报错1:

[Vue warn]: Error in v-on handler: “TypeError: “name” is read-only”
在这里插入图片描述

methods: {
    del(idx) {
      this.list.splice(idx, 1)
    },
    add() {
      const { good, list } = this
      // 1.判断
      const { name, price } = good
      if (name == '') return
      if (price == '') return
      // 2.组装一条资产
      const id = list.length > 0 ? list[list.length - 1].id + 1 : 1

      const obj = {
        id,
        name,
        price,
        time: new Date(),
      }
      // 3.添加到list中
      list.push(obj)
      // 4.清空内容
      name = ''
      price = ''
    },
  },

错误原因:
const { name, price } = good解构赋值是将good.name的值赋值给name变量,后面的清空内容清空的是变量name的值而非good.name的值,变量name的值无法清空,故报错read-only

正确写法:

<script>
export default {
  data() {
    return {
      good: {
        name: '', // 名称
        price: 0, // 价格
      },
      list: [
        { id: 100, name: '外套', price: 199, time: new Date('2010-08-12') },
        { id: 101, name: '裤子', price: 34, time: new Date('2013-09-01') },
        { id: 102, name: '鞋', price: 25.4, time: new Date('2018-11-22') },
        { id: 103, name: '头发', price: 19900, time: new Date('2020-12-12') },
      ],
    }
  },
  methods: {
    del(idx) {
      this.list.splice(idx, 1)
    },
    add() {
      const { good, list } = this
      // 1.判断
      if (good.name == '') return
      if (good.price == '') return
      // 2.组装一条资产
      const id = list.length > 0 ? list[list.length - 1].id + 1 : 1

      const obj = {
        id,
        name: good.name,
        price: good.price,
        time: new Date(),
      }
      // 3.添加到list中
      list.push(obj)
      // 4.清空内容
      good.name = ''
      good.price = ''
    },
  }
}
</script>

报错2:在这里插入图片描述

在这里插入图片描述

错误原因: v-modul双向绑定了sum
计算属性也是变量, 如果想要直接赋值, 需要使用完整写法=>开启读写模式

解决办法:

computed: {
    "属性名": {
        set(){
            
        },
        get() {
            return "值"
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值