uniapp修改数组对象属性,视图不刷新问题

发布时间 2023-04-07 10:56:37作者: 小猴子会上树

uniapp最大的坑 遇到修改数组属性视图不更新的问题  有两种解决方法

一:this.$forceUpdate();强制更新,这个确实在H5端更新了,但是微信小程序还是没有更新

二:this.$set(),一样不行修改数组后视图依旧不刷新

最后用$.elmit()方法 在子组件修改父组件传给子组件的值 达到父子组件双向数据绑定的原理 修改的时候用this.$set(传入的数组,修改值的索引,修改的值)

 

 

 

//父组件
currentTab(item) {
 this.ListData.map((val, index) => {
  if (val.activeCode == item.activeCode) {

    //父组件用set修改
    this.$set(this.ListData, index, {
    ...val,
    checked: true
});
  this.currentItem = item;

} else {
  val.checked = false
   }
});
  console.log(this.ListData)
},

 

 

//子组件传值到父组件
currentRadio(item) {
let Obj = {}
this.ispList.map((val, i) => {
if (item.agentNo == val.agentNo) {
Obj = {
...item,
checked: true
};
this.ISPRadioItem = item
}
});
//子组件传值到父组件方法
this.$emit('currentRadio2', Obj)
}