使用splice修改数组数据 数据被修改了 但是页面视图不更新

场景

<el-tag
  v-for="(tag, index) in arr"
  :key="tag"
  :closable="true"
  @close="onClose(index, $event)"
>
  {{ tag }}
</el-tag>
// 标签关闭时触发
    onClose(index, e) {
      console.log("标签关闭", index);
      this.arr.splice(index, 1);
      console.log('this.arr',this.arr); // 此处打印出来的arr的确是删除之后的,也就是说数据是有更新的,只是视图没有
    },

在对已有数据进行删除时,js数据操作返回的数组是被正常删除的,但是页面dom没有实时更新渲染,一直保持原样,vue官方给出的动态渲染函数中,包含了splice()函数,在此处依然不生效

解决

后在splice()操作后面加上视图更新this.$forceUpdate();才解决,如下

// 标签关闭时触发
    onClose(index, e) {
      console.log("标签关闭", index);
      this.arr.splice(index, 1);
      this.$forceUpdate(); // 视图更新
    },

原文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值