vue js 在組件中對數組使用splice() 遇到的坑。。。

遇到的問題:
用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');
相關文章
相關標籤/搜索