遇到的問題:
用el-dialog寫了個子組件
要實如今子組件中增刪數據 點擊肯定後把值返回給父組件
父組件在每次點開子組件時都會把本身的值傳進去。數組
//父組件傳值 this.$refs.transfer.open(this.checkedColumn.concat(), this.columns.concat(), 'fbCampaign');
//子組件接受值 open(checkedColumn, columns, type) { this.dialogVisible = true; this.showColumns = checkedColumn; this.otherColumns = columns; this.type = type }
邏輯並無錯誤。。。但會遇到下面問題。。
涉及刪除的操做,點保存沒有出現問題,點擊取消,父組件被刪除的數據就會不見。
可是並無傳值給父組件。函數
緣由:this
數組是引用類型,splice()會刪除所引用的地址裏面的值。(吐血。。。)
之前在Java中遇到的問題,沒想到js也會有這種刪除問題。。code
解決辦法引用
在父組件傳值的時候不傳原地址的參數,經過concat()函數複製一個新的值,再傳過去。數據
this.$refs.transfer.open(this.checkedColumn.concat(), this.columns.concat(), 'fbCampaign');