2023-07-12 vue this.$set设置子组件内的值无效(uniapp+vue)

前言:怎么说呢,子组件内嵌套了多层对象和数组,业务逻辑也是在子组件内处理,如何修改多层嵌套的对象数组的值?

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是一样的,视图并不会更新。

posted @ 2023-07-12 10:46  叶乘风  阅读(523)  评论(0编辑  收藏  举报