vue axios 赋值后console可以查看到 html调用数据失败

rt

大概是因为axios异步的问题,导致调用顺序有问题

使用this.$set()赋值解决

贴一段代码

onLoad(){
      if(this.refreshing){
        this.list=[];
        this.orders={};
        this.refreshing=false;
      }
      this.axios.get("user/star/getProductByUid?uid=" + this.user.uid)
      .then(async(response)=>{
        
        this.list = response.data;
        var arr = [];
        for(var i = 0;i < this.list.length;i++){
          
          await this.axios.get("shop/detail/getDetailByPid?pid=" + this.list[i]['pid'])
          .then((response) =>{  //await从字面意思上是“等待”的意思,就是用于等待异步完成
            arr.push(response.data)
          }).then(()=>{
            const newObj = Object.assign(this.list[i], arr[i]);  //Object.assign(list1,list2)合并对象
            this.$set(this.list,i,newObj)  //此处使用
          })
        }
      })
  },

 

posted @ 2022-05-18 19:54  kekit  阅读(86)  评论(0编辑  收藏  举报