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');
相关文章
相关标签/搜索