收藏
回答

地图上mark点击后改变尺寸或更换icon界面不刷新

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 地图 客户端 6.7.1 2.0.4

markertap(e) {

//点击anotation标记事件

let item = this.data.mapparklist[e.markerId];

var obj = arguments[0];

console.log(obj.markerId);

for(var i = 0;i<this.data.markers.length;i++){

if (this.data.markers[i].id == obj.markerId){

this.data.markers[i].iconPath = "/images/icon/car.png";

this.data.markers[i].width = 80;

this.data.markers[i].height = 80;

break;

}

}

console.log(this.data.markers);

如上,我希望在点击地图上mark后改变其宽高和iconpath,设置后data里面数据改变了,但界面没有刷新。

求大神指点是mark一旦创建就不能改变尺寸或者更换iconpath还是我设置的方法不对?


最后一次编辑于  2018-08-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

5 个回答

  • ???
    ???
    2018-08-28

    可以不用setData改变数据?!!!∑(゚Д゚ノ)ノ

    2018-08-28
    赞同
    回复 3
    • ???
      ???
      2018-08-28

      最后用setData试试

      2018-08-28
      赞同
      回复
    • Muse
      Muse
      2018-08-28回复???

      markertap(e) {

      //点击anotation标记事件

          let item = this.data.mapparklist[e.markerId];

          var obj = arguments[0];

          console.log(obj.markerId);

          for(var i = 0;i<this.data.markers.length;i++){

              if (this.data.markers[i].id == obj.markerId){

                  this.data.markers[i].iconPath = "/images/icon/car.png";

                  this.data.markers[i].width = 80;

                  this.data.markers[i].height = 80;

                  break;

              }

          }

      this.setData({

          item: item,

          bottomview: true

          })

          console.log(this.data.marks);

      }

      有setdata啊,打印marks数组,看到当前id对应的宽高和iconpath数据都改了,但就是界面上不刷新啊

      2018-08-28
      赞同
      回复
    • ???
      ???
      2018-08-28回复Muse

      要获取整个mapparklist 修改mapparklist[e.markerId]然后 替换整个mapparklist

      如果知道准确的数字也可以像这样

      this.setData({

      'mapparklist[0]':item

      })

      像你这样


      this.setData({

          item: item,

       })

      设置的data属性名是item  你可以在开发者工具AppData里看看是不是多了个item属性

      2018-08-28
      赞同 11
      回复
  • Muse
    Muse
    2018-08-29

    明白你的意思,也就是要修改markers中其中一个,必须把markers重新set下,试了下有效果,多谢🙏!

    2018-08-29
    赞同
    回复