vue 改变对象数组中的布尔值,值不变

this.diaryInfoList.forEach((item)=>{

item.showText = false;
item.showBtn = false;
item.showBtnText = false;

})

数据格式是:
let list= [

{xxx:xxx},
{xxx:xxx}

]

下面是我使用的方法,都无效↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
第一种:
this.diaryInfoList[i].showBtn = true;
this.diaryInfoList[i].showText = true;
this.diaryInfoList[i].showBtnText = true;
this.$forceUpdate()

第二种:
this.$set(this.diaryInfoList[i], "showBtn", true)
this.$set(this.diaryInfoList[i], "showText", true)
this.$set(this.diaryInfoList[i], "showBtnText", true)

阅读 5.7k
4 个回答
this.diaryInfoList.forEach((item) => {
    this.$set(item,'showBtn',true);
    this.$set(item, "showText", true);
    this.$set(item, "showBtnText", true)
})

参考:demo

跟同上同理,让 Vue 对 diaryInfoList 的新数据做监听

this.diaryInfoList = this.diaryInfoList.map((item) => {
    item.showText = false;
    item.showBtn = false;
    item.showBtnText = false;
    
    return item;
})
this.diaryInfoList.map((item) => {
    this.$set(item,'showText', true)
    this.$set(item,'showBtn ', true)
    this.$set(item,'showBtnText ', true)
    return item;
})
this.$set(this.diaryInfoList, i, {
  showBtn: true,
  showText: true,
  showBtnText: true
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题