哈喽 大家好啊,今天使用计数器发现,点击一次了后就显示不了了

这里怎么点击都点击不了,只能点击一次
然后我发现我代码是这样写的:
gitem是一个对象
gitem.saleNum = gitem.reduceQuantity || 1;// 剩余可以编辑的数量
因为我这里是直接赋值的 会涉及到dom更新
然后我猜想是这样
我就用this.$set就好了
this.$set(gitem,'saleNum',reduceQuantity)// 剩余可以编辑的数量
原因:我们直接采用了空对象初始化的形式来初始化对象,这样对象中的字段在赋值的时候是不存在响应式的
通过this.$set()的方式来将对象进行响应式赋值
第一个参数是被赋值对象的外层,也就是对象,
第二个参数是被赋值对象的属性字段
第三个参数是赋值的字段
demo 公式
this.dataForm.docnum => this.$set(this.dataForm,'doctype',val);
就可以实现可以编辑了
参考原文:
文章讨论了在Vue应用中遇到的计数器点击一次后无法继续点击的问题。作者发现直接赋值给对象的属性不会触发响应式更新,特别是当对象是通过空对象初始化时。解决方案是使用`this.$set()`方法进行响应式赋值,确保DOM能正确更新。例如,通过`this.$set(gitem,saleNum,reduceQuantity)`可以使`saleNum`属性变得可编辑。

2894

被折叠的 条评论
为什么被折叠?



