如上图所示,我们在dialog里面改变状态的时候,遮罩下面的table里面该行的状态也在那里跟着一只变化着。原因想必大家都猜到了。赋值的数据是一个objec引用类型共享一个内存区域的。所以我们就不能直接连等复制,需要重新指向一个新的引用,方案如下:
//赋值对象是一个obj
this.objData=Object.assign({}, row); //这样就不会共用同一个对象
//数组我们也有一个巧妙的防范
newArray = oldArray.slice();//slice会clone返回一个新数组