小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序map组件,初始化渲染marker之后,点击类型切换,重新请求数据,在请求时先用setData将marker设为[ ] ,再赋值新数组,但是安卓还会显示上次marker的内容
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
用这个 api 清除marker
this.mapCtx.addMarkers({
clear: true,
markers: [],
success: (res) => {
console.log('removeMarkers', res)
}
})
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这个主要是因为多个请求并发导致的,可以使用全局变量time记录当前请求时间,使用begin局部变量设置为相同时间,在请求回来之后将全局变量赋值为新的时间,判断如果time不等于begin,就是说明有这个请求不是最开始那个请求,直接抛弃掉,当两个值相等时,说明是顺序的一个请求,则渲染marker
例如 拖动地图 或者切换地图marker显示类型时重新获取marker信息,拖动的时候或者类型切换特别多次时,上次的marker还没清掉,下次的就渲染上去了,就会有重复显示的情况
楼主解决了吗
工具正常吗?麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
request({
url: '/venues',
method: 'get',
loading: loadingVenue,
data: {
sports_type: index,
types: JSON.stringify(arr)
}).then((val)=> {
//marker点数据
that.setData({
markers: []
}) // 这里清空没有用
let newArr = []
if (scale <= 14) {
for (var one of val.data) {
newArr.push({
'id': one.id,
'venue_id': one.id,
'longitude': one.longitude,
'latitude': one.latitude,
'width': "32rpx",
'height': "32rpx",
'iconPath': `/images/venueTypes/venue_small_${that.data.activeBigType}.png`,
'small_icon': one.small_icon,
'big_icon': one.big_icon,
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
用这个 api 清除marker
this.mapCtx.addMarkers({
clear: true,
markers: [],
success: (res) => {
console.log('removeMarkers', res)
}
})
这个主要是因为多个请求并发导致的,可以使用全局变量time记录当前请求时间,使用begin局部变量设置为相同时间,在请求回来之后将全局变量赋值为新的时间,判断如果time不等于begin,就是说明有这个请求不是最开始那个请求,直接抛弃掉,当两个值相等时,说明是顺序的一个请求,则渲染marker
例如 拖动地图 或者切换地图marker显示类型时重新获取marker信息,拖动的时候或者类型切换特别多次时,上次的marker还没清掉,下次的就渲染上去了,就会有重复显示的情况
楼主解决了吗
工具正常吗?麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
request({
url: '/venues',
method: 'get',
loading: loadingVenue,
data: {
sports_type: index,
types: JSON.stringify(arr)
}
}).then((val)=> {
//marker点数据
that.setData({
markers: []
}) // 这里清空没有用
let newArr = []
if (scale <= 14) {
for (var one of val.data) {
newArr.push({
'id': one.id,
'venue_id': one.id,
'longitude': one.longitude,
'latitude': one.latitude,
'width': "32rpx",
'height': "32rpx",
'iconPath': `/images/venueTypes/venue_small_${that.data.activeBigType}.png`,
'small_icon': one.small_icon,
'big_icon': one.big_icon,