场景复现:
由于业务需要,需要给数组中的每一个对象添加一个ischecked属性(Boolean)来控制复选框的选中状态,于是:
注意:buycargoodslists为数据源,初始数据源没有定义isChecked属性
for (let i = 0; i < this.buycargoodslists.length; i++) {
this.buycargoodslists[i].isChecked==true;
}
结果可想而知,在控制台查看操作后的数据源buycargoodslists:确实属性isCheck已经插进去了,但是视图没有变化
vue中,追加的对象属性通过直接赋值的方式得不到vue的数据追踪
如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。
vue官方给出的解决方式是:this.$set的方式进行赋值,有两种方式:文章来源:https://www.toymoban.com/news/detail-517438.html
用法:this.$set(对象, 属性名, 属性值);文章来源地址https://www.toymoban.com/news/detail-517438.html
this.$set(target, propertyName/index, value)
for (let i = 0; i < this.buycargoodslists.length; i++) {
this.$set(this.buycargoodslists[i], "isChecked", true);
}
到了这里,关于uniapp小程序:追加数组中的对象属性,属性数据已经添加,视图不会改变的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!