收藏
回答

修改地图iconPath后,没有改变图片?

修改markers中一个对象的iconPath地址,图片没有发生改变

markers[index].iconPath = 'https://img.png';

that.setData({

markers : markers

});

但是我遍历markers在循环里面修改,图片就改变了,两种方式console的值都是一样的,确认值是发生改变了


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

3 个回答

  • null
    null
    2020-06-09

    先看下图片地址js是否变化

    js变化了的话就是视图没有更新上去,

    先获取markers 数据

    const { markers } = this.data

    markers = JSON.parse(JSON.stringfy(markers ))

    ...

    或者

      const str = "array["+index+"].iconPath ";     //index为下标

      markers[str] = 'https://img.png';

      this.setData(markers);

    2020-06-09
    有用 1
    回复 3
    • 小欧
      小欧
      2020-06-09
      值确实已经改变,感觉是没有更新上去
      2020-06-09
      回复
    • 小欧
      小欧
      2020-06-09
      两种方式都用了,还是值改变了,图片没有刷新
      2020-06-09
      回复
    • null
      null
      2020-06-09回复小欧
      markers是一个数组,然后页面上wx:for 的时候 key有加吗,保证key的唯一性, 方便的话贴个截图看看
      2020-06-09
      1
      回复
  • 就在那里
    就在那里
    2020-06-09
    that.setData({
      ['markers['+index+'].iconPath']:"https://img.png"
    })
    
    2020-06-09
    有用
    回复 2
    • 小欧
      小欧
      2020-06-09
      这种方式也用了,还是一样,值变了,但是图片就是不变
      2020-06-09
      回复
    • 就在那里
      就在那里
      2020-06-09回复小欧
      2020-06-09
      回复
  • 八九
    八九
    2020-06-09

    that.setData({

    markers : this.data.markers

    });

    marker是全局还是局部哇


    2020-06-09
    有用
    回复 6
    • 小欧
      小欧
      2020-06-09
      局部的,在函数中声明的
      2020-06-09
      回复
    • 八九
      八九
      2020-06-09回复小欧
      楼上那种可以 你试试
      2020-06-09
      回复
    • 小欧
      小欧
      2020-06-09回复八九
      这种方式也用了,还是一样,值变了,但是图片就是不变
      2020-06-09
      回复
    • 八九
      八九
      2020-06-09回复小欧
      局部变量怎么定义的 var let const
      2020-06-09
      回复
    • 八九
      八九
      2020-06-09回复小欧
      清下缓存
      2020-06-09
      回复
    查看更多(1)
登录 后发表内容
问题标签