背景:当使用饿了么表格时,涉及到新增修改使用同一个弹窗的时候,每次关闭弹窗需要清空表单内容,此时会发现表格数据丢失了。
原因:涉及到了栈堆的问题了,可能时你给表格赋值的时候没有采用深拷贝,而是直接this.form = row
edit(row){
console.log('修改', row)
// 给表单赋值
this.form = row // 就是这里没有深拷贝
}
add () {
this.visible = true
}
closeDialog(){
this.$refs.form.resetFields()
this.visible = false
}
解决方法:
edit(row){
console.log('修改', row)
// 给表单赋值
this.form = {...row} // 解构赋值一下完成深拷贝
}
add () {
this.visible = true
}
closeDialog(){
this.$refs.form.resetFields()
this.visible = false
}
举个例子: