首页 > 其他 > 详细

解决使用$set,视图还是不能更新的问题

时间:2021-05-28 19:15:28      阅读:17      评论:0      收藏:0      [点我收藏+]

Object.assign
Object.assign可以用于js对象浅复制。语法:Object.assign(target, source1, source2);
第一个参数为目标对象,后面的为要合并的对象(源对象)。

let obj={
a:2,
b:4
}
Object.assign({}, obj, {c:6}); // 将{c:6}与obj合并  返回{a:2,b:4,c:6}

当属性名相同时,新增的会覆盖原来的属性
Object.assign只会拷贝对象本身的属性,不拷贝继承属性,不拷贝不可枚举对象。

当项目中遇到vue视图不及时刷新的问题,使用Object.assign重新创建一个对象,给视图对象重新赋值,可以解决vue中视图不及时刷新的问题。

本人项目案例:

skuConfirm(sku) {
      this.changeSku = sku;

      this.list.forEach(x => {
        if (x.salesOrderDetailId == this.cursor) {
          x.outProductId = sku.productId;
          x.outProductName = sku.productName;
          x.outProductCode = sku.productCode;
          x.outSkuId = sku.skuId;
          x.outSkuCode = sku.skuCode;
          x.outSkuName = sku.skuName;
          this.$forceUpdate();
        }
      });
      this.list = Object.assign([], this.list, this.list);
    }

解决使用$set,视图还是不能更新的问题

原文:https://www.cnblogs.com/smallcupforke/p/14823447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!