收藏
回答

为何我对正常request请求得来的数据遍历操作后却无法得到相对应的新数据?

先晒代码

js

wx.request({
          url'http://xxx/index/Perso/person5', 
          method'POST',
          successfunction(res{
            console.log(res)
            var sum =res.data
            that.setData({
              array:sum
            })
            console.log(sum)
            console.log(that.data.array)
            function asyncFunc1(){
              return new Promise(function (resolve, reject{
                for (let i = 0; i < sum.length; i++) {
                  var img=res.data[i].area_img_name
                  var url="http://xxx"
                  res.data[i].area_img_src=url+"/uploads/area_img/"+img
                  that.setData({
                    array:res.data
                  })
                  console.log(that.data.array)
                  console.log("执行"+i+"次循环")
                }
              })
            }
            function asyncFunc2(){
              return new Promise(function (resolve, reject{
               that.setData({
                 array:res.data
               })
               console.log("循环结束之后赋值")
              })
            }
            asyncFunc1()
            .then(asyncFunc2);
          }
        })

wxml

但我在调试器看此处的实时src(调试器中的wxml)却发现是(注意此处没有area_img_src地址)

而报错信息却是(报错却是area_img_src地址错误)

又打开调试器中的AppData发现(根本没有area_img_src这个字段

但是在上面在array赋值前对array的打印中

又显示有这个area_img_src字段且已经赋值进了array

这好迷啊

回答关注问题邀请回答
收藏

1 个回答

  • จุ๊บ
    จุ๊บ
    2020-08-10

    报错信息很明显啊,提示的图片路径问题,报错的是绝对路径

    2020-08-10
    有用
    回复 2
    • Hall of fame
      Hall of fame
      2020-08-11
      我给大致解释一下,由于原生数据的路径有问题,所以我对得到的原生数据数组进行了遍历修改。但大量逻辑不清问题爆发了1.部分调试信息告诉我,前端的原生地址并未修改为正确的地址 2.另一部分调试信息告诉我,前端所调用的data中的数据中的地址是正确的。3.还有一部分调试信息告诉我前端的src属性中根本没有地址这是问题所在,你可以仔细看看我说的问题细节
      2020-08-11
      回复
    • จุ๊บ
      จุ๊บ
      2020-08-11回复Hall of fame
      你直接写个代码片段吧
      2020-08-11
      回复
登录 后发表内容