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还是我设置的方法不对?
明白你的意思,也就是要修改markers中其中一个,必须把markers重新set下,试了下有效果,多谢🙏!
可以不用setData改变数据?!!!∑(゚Д゚ノ)ノ
最后用setData试试
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数据都改了,但就是界面上不刷新啊
要获取整个mapparklist 修改mapparklist[e.markerId]然后 替换整个mapparklist
如果知道准确的数字也可以像这样
像你这样
设置的data属性名是item 你可以在开发者工具AppData里看看是不是多了个item属性