解决Iview的Render中赋值绑定原数据的问题

6

国瑞前端(www.huanggr.cn):iview里面中的render(render用在给table表格添加内容的时候使用,也可以绑定一些事件)赋值拷贝成了地址引用 地址引用,也…

国瑞前端(www.huanggr.cn):iview里面中的render(render用在给table表格添加内容的时候使用,也可以绑定一些事件)赋值拷贝成了地址引用
地址引用,也就是说对render中的数据操作会改变原来的数据,我们可以使用Object.assign()来进行赋值,这样数据指向的就不是源数据的地址了,所以就不会改变原来的值了。
详细示例如下

Iview中render中的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
          render: (h, params) => {
            return h('div', [
              h('span', {
                style: {
                  cursor: 'pointer',
                  color: '#4E9FDE'
                },
                on: {
                  click: () => {
                    console.log(params.row, '点击修改')
                    this.toggle = true
                   // this.formData = params.row  //直接赋值引用的是内容中地址,修改值会引起联动,所以不能使用这种方式进行赋值,建议使用下面的方式
                    this.formData = Object.assign({}, params.row)
                    this.drawerTitle = '蠕虫攻击防护规则修改'
                    this.flag = true
                  }
                }
              }, params.row.wormFilterName)
            ])
          }

关于js的深浅拷贝问题:js中的浅拷贝和深拷贝

作者: huanggr

为您推荐

7

发表评论

电子邮件地址不会被公开。 必填项已用*标注