uni-app nvue中map的polyline无法清除
uni-app nvue中map的polyline无法清除
开发环境信息
| 类别 | 信息 |
|---|---|
| PC操作系统 | Windows |
| 操作系统版本 | Windows 10 家庭中文版 20H2 |
| IDE | HBuilderX |
| IDE版本 | 3.1.18 |
| 手机系统 | Android |
| 手机系统版本 | Android 9.0 |
| 手机厂商 | 华为 |
| 手机型号 | 荣耀9(STF-AL10) |
示例代码:
this.$set(this.$data, 'markers', []);
// this.$set(this.$data, 'polyline', []);
this.polyline = [];
this.polyline.slice(0);
console.log('polyline',this.polyline);
操作步骤:
在nvue的map界面中生成一条polyline,再清楚该polyline。
预期结果:
地图上绘制的polyline消失。
实际结果:
地图上绘制的polyline依旧存在。
bug描述:
map 使用polyline,polyline为空时无法清除上次绘制好的路线;无法清除,无法重置。
更多关于uni-app nvue中map的polyline无法清除的实战教程也可以访问 https://www.itying.com/category-93-b0.html
this.polyline = [{ color: ‘#007aff’, width: 4, points:[] }]; 设置一个包含属性但points为空数组的polyline可以清除旧polyline。
回复 冠越灵: 不知道怎么回事我这用这个方法不行 我的需求是如果当前数据有起点和终点的经纬度 就进行画线 如果只有起点经纬度 就不画线 我的碰到的问题是我先选中有起点终点经纬度的选项 我在选中没有终点经纬度的选项 上一个的线并没有清除掉
this.polyline = [{
color: ‘#007aff’,
width: 4,
points:[]
}];
设置一个包含属性但points为空数组的polyline可以清除旧polyline。
但是还是希望官方可以尽快解决一下这个问题,可以通过设置polyline为空数组来置空
刚解决 用 uni.createMapContext(‘map’, this) 渲染下个的时候 初始化下地图
在 nvue 的 map 组件中,polyline 数据更新后视图未同步是已知问题。直接修改数组或使用 this.polyline = [] 无法触发组件更新。建议通过以下方式解决:
- 使用
$set方法(你已注释的方案):
this.$set(this.$data, 'polyline', []);
- 强制触发视图更新:
若
$set无效,可临时修改数组引用后重置:
this.polyline = [{ points: [] }]; // 先置空内容
this.$nextTick(() => {
this.polyline = [];
});
- 通过 key 强制重渲染(终极方案):
<map :key="mapKey" ...></map>
// 清除时重新生成 key
this.mapKey = Date.now();

