把这个事件合成一个 Edats() { this.dataSource.forEach((item) => { let editItem = cloneDeep(item) this.$set(this.editableData, item.key, editItem) }) this.dataSourceFeWate.forEach((item) => { let editItem = cloneDeep(item) this.$set(this.editableDataFeWate, item.key, editItem) }) this.conceal = true this.concealFeWater = true },
时间: 2024-03-08 21:48:57 浏览: 16
可以将这个事件重构为一个更通用的方法,如下所示:
```
editData(dataSource, editableData, conceal, dataSourceFeWate, editableDataFeWate, concealFeWater) {
dataSource.forEach((item) => {
let editItem = cloneDeep(item)
this.$set(editableData, item.key, editItem)
})
dataSourceFeWate.forEach((item) => {
let editItem = cloneDeep(item)
this.$set(editableDataFeWate, item.key, editItem)
})
conceal = true
concealFeWater = true
}
```
然后在需要调用的地方传入相应的参数即可:
```
this.editData(this.dataSource, this.editableData, this.conceal, this.dataSourceFeWate, this.editableDataFeWate, this.concealFeWater)
```
相关问题
把这个个方法合成一个 Edats() { this.dataSource.forEach((item) => { let editItem = cloneDeep(item) this.$set(this.editableData, item.key, editItem) }) this.dataSourceFeWate.forEach((item) => { let editItem = cloneDeep(item) this.$set(this.editableDataFeWate, item.key, editItem) }) this.conceal = true this.concealFeWater = true },
可以将这个方法重构为一个更通用的方法,如下所示:
```
editData(dataSource, editableData, conceal) {
dataSource.forEach((item) => {
let editItem = cloneDeep(item)
this.$set(editableData, item.key, editItem)
})
conceal = true
}
```
然后在需要调用的地方分别传入不同的参数即可:
```
this.editData(this.dataSource, this.editableData, this.conceal)
this.editData(this.dataSourceFeWate, this.editableDataFeWate, this.concealFeWater)
```
不用深拷贝实现this.dataSource.forEach((item) => { let editItem = cloneDeep(item) this.$set(this.editableData, item.key, editItem) })
如果不使用深拷贝,那么修改editItem对象的属性值也会影响到this.dataSource中对应元素的属性值。如果你确定不需要进行深拷贝,可以直接将item对象作为属性值添加到this.editableData对象中,如下所示:
```
this.dataSource.forEach((item) => {
this.$set(this.editableData, item.key, item)
})
```
这样就可以将this.dataSource中的每个元素以item.key作为属性名,添加到this.editableData对象中,而且不需要进行深拷贝。但是需要注意的是,如果你在修改this.editableData中的元素时,需要同时修改this.dataSource中对应元素的属性值,否则会导致数据不一致的问题。