背景:最大化后選然后復雜組件內容丟失,如下拉框、圖片上傳組件
-
修復方案:使用深拷貝
-
核心代碼
this.maximizeDialog = {visible: true,title: '患者申請 - 最大化查看',formModel: JSON.parse(JSON.stringify(this.formModel || [])),formLogic: JSON.parse(JSON.stringify(this.formLogic || {})),formData: JSON.parse(JSON.stringify(this.formData || {}))
};
console.log('最大化彈窗數據', this.maximizeDialog);
- 原理:
maximizeDialog在賦值后,如上,如果沒有深拷貝
只是向下面一樣賦值, 則會出現丟失數據問題。我認為的原因是在maximizeDialog這個json中如果這樣寫就只是做到了較淺的響應式引用
formModel: this.formModel,
formLogic: this.formLogic,
formData: this.formData