vue操作数组更新视图

需求前提,后台对接接口,然后加收起展开功能,丢给我了,功能如图:

在这里插入图片描述
在这里插入图片描述

第一想到就是使用变量操作显隐,在不改动接口的情况下,自己手动给总数据添加了一个属性和属性值:
this.tab1List.forEach((item) => {
  item.isShowData = false;
});
this.tab1List[0].isShowData = true;
// 需求是第一个数据默认展开,所以单独赋值了true
<van-col
  span="6"
  v-show="item.isShowData"
  @click="handleUp(item, index)"
  class="text-right"
  >收起</van-col
>
<van-col
  span="6"
  v-show="!item.isShowData"
  @click="handleDown(item, index)"
  class="text-right"
  >展开</van-col>
// 动态展示区域:
<van-row class="productTitle" v-show="item.isShowData">
 <van-col span="12" class="productTitle_left text-left"
    >机构件</van-col
  >
  <van-col span="12" class="productTitle_right text-right">
    <div class="productTitle_box">
      <span class="productTitle_txt">排产</span>
      <span class="productTitle_time">{{ item.BilDate }}</span>
    </div>
  </van-col>
</van-row>
// js部分
// 收起
handleUp(item, id) {
  item.isShowData = false;
  // 这是重点:必须使用Item,不然更新不了还报错,(如下图)
  this.$set(this.tab1List, id, item);
},
// 展开
handleDown(item, id) {
  item.isShowData = true;
  this.$set(this.tab1List, id, item);
},

在这里插入图片描述

我尝试过直接赋值:
this.tab1List[id].isShowData = false 或者this.tab1List[id].isShowData = true
控制台打印的值变化是正确的,但是试图没有更新

<fond color=green>某女:好冷,我:又想钻我怀里?哈哈啊哈哈</font>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值