前言:怎么说呢,子组件内嵌套了多层对象和数组,业务逻辑也是在子组件内处理,如何修改多层嵌套的对象数组的值?
vue提供了一个this.$set方法去改变对应的值,实测在uniapp打包的微信小程序中无法使用该方法,而在Android端则可以,那有没有两全其美的方法?
答案是有,在修改深层次的值时可以通过先保存原值(this.dataSource)给一个变量(arr),然后清除原值(this.dataSource = [];),接着用这个arr去操作数据,最后再把arr赋值给this.dataSource,即:
let arr = []; arr = this.dataSource; this.dataSource = []; // 此处进行业务操作
// ....
this.dataSource = arr;
如果直接去用this.dataSource进行业务操作,那么结果和this.$set是一样的,视图并不会更新。
标签:uniapp,arr,vue,set,dataSource,组件 From: https://www.cnblogs.com/iuniko/p/17546941.html