问答

vue,两个接口给两个不同的对象进行赋值,修改第一个对象时,第

作者:admin 2021-08-03 我要评论

getCatalog().then((res)={ this.formInline.projectId = res.data.items this.form.projectId = res.data.items }) getPopularize().then((res)={ this.formInl...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
getCatalog().then((res)=>{
                    this.formInline.projectId = res.data.items
                    this.form.projectId = res.data.items
                })
                getPopularize().then((res)=>{
                    this.formInline.popularize = res.data
                    this.form.sourceAccountId = res.data
                })
// 点击修改用户
            uplodeClick(index,row){
                console.log(row)
                this.dialogVisible = true
                this.form.id = row.id;
                this.form.mobile = row.userName
                this.form.projectId.id = row.projectId
                this.form.sourceAccountId.code = row.source
            },

QQ截图20200526172335.png

###

来个深拷贝. 试试

###

因为接口的返回值是一个对象,你直接 = 号赋值,相当于两个变量的this指向都是对同一个对象的引用,所以如果你修改了其中的某一个,因为对象赋值是地址的引用,所以另外一个对象也就改变了。
解决方案:

1、简单一点的就是 JSON.parse(JSON.stringify(res.data))

2、如果你的对象层级不是有深层嵌套的,可以使用 Object.assign({}, res.data) 来给两个变量赋值;如果有深层嵌套,不推荐这个

3、深拷贝方法

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • vue,两个接口给两个不同的对象进行赋

    vue,两个接口给两个不同的对象进行赋

  • vue路由从接口获取,怎么动态设置路由

    vue路由从接口获取,怎么动态设置路由

  • echarts 地图绘制线路显示线路label问

    echarts 地图绘制线路显示线路label问

  • Vue history模式  哭了

    Vue history模式 哭了

腾讯云代理商
海外云服务器