vue js 在组件中对数组使用splice() 遇到的坑。。。
2024-10-02 19:05:01
遇到的问题:
用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
}
逻辑并没有错误。。。但会遇到下面问题。。
涉及删除的操作,点保存没有出现问题,点击取消,父组件被删除的数据就会不见。
但是并没有传值给父组件。
原因:
数组是引用类型,splice()会删除所引用的地址里面的值。(吐血。。。)
以前在Java中遇到的问题,没想到js也会有这种删除问题。。
解决办法
在父组件传值的时候不传原地址的参数,通过concat()函数复制一个新的值,再传过去。
this.$refs.transfer.open(this.checkedColumn.concat(), this.columns.concat(), 'fbCampaign');
最新文章
- [LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串
- C#: 向Word插入排版精良的Text Box
- 解决Button设置disabled后无法执行后台代码问题
- java sleep() 、yield()
- NYOJ 21 三个水杯
- Apache2.2 + php-5.4.45-Win32-VC9-x86 配置
- randperm函数
- 多用less命令,不会输入h查看对应的详细文档
- Real-Time Rendering 3 彩图
- tornado项目
- python 之 yield表达式
- sqlserver中select造成死锁
- 【一天一道LeetCode】#136. Single Number
- MQ队列管理器搭建(二)
- excel 上传读写到数据库
- 如何快速申请苹果IOS个人开发者账号
- Lint found fatal errors while assembling a release target
- BZOJ 1257: [CQOI2007]余数之和
- (转)Maven之自定义archetype生成项目骨架
- $interpolateProvider