小程序marker点击后需要刷新页面才能变化,没办法实时更新
时间: 2024-05-11 09:14:22 浏览: 7
您可以使用小程序的setData方法来实现实时更新marker。当您点击marker时,将需要更新的数据存储在setData中,小程序会自动更新页面中相关的数据,从而实现实时更新marker的效果。以下是一个示例代码:
```
Page({
data: {
markers: [
{
id: 1,
latitude: 30.266497,
longitude: 120.181981,
title: 'Marker1',
iconPath: '/images/marker.png',
width: 50,
height: 50
},
{
id: 2,
latitude: 30.267497,
longitude: 120.182981,
title: 'Marker2',
iconPath: '/images/marker.png',
width: 50,
height: 50
}
]
},
onMarkerTap: function(e) {
var that = this;
var markers = that.data.markers;
var id = e.markerId;
for (var i = 0; i < markers.length; i++) {
if (markers[i].id == id) {
markers[i].title = 'NewTitle';
markers[i].iconPath = '/images/newmarker.png';
that.setData({
markers: markers
});
break;
}
}
}
})
```
在上面的代码中,当您点击marker时,会触发onMarkerTap函数。函数中会遍历所有marker,找到被点击的marker,更新其title和iconPath属性。然后,通过setData方法更新markers数据,从而实现实时更新marker的效果。