先具体介绍一下Object.assign()方法的用法。
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
Object.assign(target, …sources) 【target:目标对象】,【souce:源对象(可多个)】

const targetObj = { a1: 1 };
const sourceObj1 = { a2: 2 };
const sourceObj2 = { a3: 3 };
Object.assign(targetObj, sourceObj1, sourceObj2);
target // {a1:1, a2:2, a3:3}
1
2
3
4
5

然后说一下问题,这是一个利用vue+vant写的h5应用,在写一个简单的分单商信息表单的时候,为了图方便直接使用Object.assign(this.info,resData.data.data.info)来赋值,没想到翻车了哈哈,打印出来的信息都有页面却是全屏的undefined,百思不得其解,后来换成了this.info=resData.data.data.info的复制方式才正常显示,如下图:
在这里插入图片描述
在这里插入图片描述
代码如下:

<template> 
 <div>   
  <van-nav-bar title="分单商信息" />   
   <van-cell-group>      
   <van-cell title="名称"  :value="info.name" />     
   <van-cell title="联系人" :value="info.linkman + ' / ' + info.mobile" />      
   <van-cell title="地区"   :value="info.province_info +' => ' + info.city_info + ' => ' + info.district_info        "    class="address"  />  
   </van-cell-group>  
  </div>
  </template>
      <script>
      import { get, post } from "../JS/ajax";
      export default {  
      data() {    
            return {      
             info: {},    
                    }; 
      },  
      created() {    
      let url = "/user/issuerinfo";    
      get(url).then((resData) => {      
      console.log(resData.data);      
      if (resData.data.code == 0) {       
       Object.assign(this.info, resData.data.data.info);      
      }    
      });  
      },  
     </script>

目前还没有明白为什么赋值失败,等研究明白了再来更,也希望有大神来带带我这个小菜鸡哈哈~

Logo

前往低代码交流专区

更多推荐