v-if解决uview u-number-box的bug缺陷 ,删除一条数据时其他数值数量会直接变成0

328 阅读1分钟

image.png

  <u-number-box v-model="goods.quantity" :min="0" :index="gindex" 
  @change="changeCartNum" bgColor="#fff"  disabledInput="true" v-if="changeCartNumIf">
  </u-number-box>
//点击+ - 事件
// 通过v-if去重新渲染加载数据  使用数据同步更新
    changeCartNum (detail) {
      if(detail.value<=0) {
        this.changeCartNumIf=false
        this.cartList.splice(detail.index,1);
        this.$nextTick(() => {
          this.changeCartNumIf=true
        })
      }
      this.computeCart();
    },

总结

- 发现问题:
    1. 从上到下 或者从中间某个开始删除,其他数据的数量会直接变成0,但是从下到上按顺序删除则没问题
    1. 其实就是页面没有更新,数据是正常的,查了度娘也没有很好的解决方案,尝试过了都是不行
- 解决思路:
  • 1.加入uview QQ群去提问相关问题,很多小伙伴都反馈就是uview的bug来的,无法解决,最多只能是通过软删除的方法进行隐藏起来
  • 2.想到软删除就是隐藏,关键是v-if起到真正的移除数据后重新渲染页面效果,直接达到我想要的效果更新页面了