项目场景:
提示:这里简述项目相关背景:
例如:项目场景:elementui table中修改表单行数据时数据不一致、变化的问题。
问题描述
提示:这里描述项目中遇到的问题:
例如:vue table中修改该行数据,dialog获取的该行数据不一致,表单显示同步修改问题:
原因分析:
table行内获取该行数据的两种方法:(个人推荐第二种)
- 向后端请求接口:根据数据id重新获取list数据;
getlist(row.Id).then(res => {
this.form = res.data;
this.open = true;
});
- 操作该行数据时,直接通过slot插槽获取。(遇到上面描述问题)–根据资料:row是Object对象类型,如果直接赋值的话,就变成了浅拷贝,复制的是地址,导致在表单中改变值的时候table中的数据也跟着修改。
this.form = row;
解决方案:
提示:这里填写该问题的具体解决方案:
改用深拷贝:这样就OK了
this.form = JSON.parse(JSON.stringify(row));