问题
在表单中做编辑时,表格中数据也跟着变
原因
这里有一个引用关系: this.roleForm和row指向同一个对象,改了一个,另一个也受影响
hEdit(row){
this.roleForm = row
}
示意图如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/8dfb5396141e4adfb38d37e3ff7b1cc0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUnhpblk5MjQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
上面的这种写法俗称:浅拷贝(把地址赋值给地址)
拷贝:就是赋值,让两个元素一样。
让小王和你有一样的电动车
浅拷贝:配了一把你电动车的钥匙给小王
深拷贝:送一同款电动车给小王
解决
把浅拷贝
改成深拷贝
![在这里插入图片描述](https://img-blog.csdnimg.cn/7df17a6116a54716a58e1efac8508a7b.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/94b95ac48a974f35b110e62153af3393.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUnhpblk5MjQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
或者也可以用对象解构和扩展运算符结合使用来处理:this.roleForm = {…row}