uni-app polygons 清空在ios上无效

uni-app polygons 清空在ios上无效

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.76

手机系统:iOS

手机系统版本号:iOS 18

手机厂商:苹果

手机机型:iphone13mini

页面类型:nvue

vue版本:vue3

打包方式:云端

操作步骤:

//定义数据  
//谷歌地图  
const mapPolygons = ref([]);

//清空数据  地图上的区域未删除  
mapPolygons.value = [];

预期结果:

地图上的区域删除

实际结果:

地图上的区域未删除

bug描述:

//谷歌地图  
//定义数据  
const mapPolygons = ref([]);

//清空数据  地图上的区域未删除  
mapPolygons.value = [];

更多关于uni-app polygons 清空在ios上无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

给map加一个key。
当mapPolygons 更新时,key+1,可以更新,目前只能用这个方法

更多关于uni-app polygons 清空在ios上无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


测试下 非 nvue 页面,普通 vue 页面是否正常。相同代码再安卓中是否正常?

这是一个典型的iOS平台上数据响应式更新问题。在nvue页面中使用Vue3的ref响应式数据时,直接对数组进行赋值操作在iOS上可能不会触发视图更新。

解决方案:

  1. 使用数组的splice方法清空数组:
mapPolygons.value.splice(0, mapPolygons.value.length)
  1. 或者重新赋值空数组时强制触发更新:
mapPolygons.value = []
// 强制视图更新
await nextTick()
  1. 对于地图组件的特殊处理: 由于地图多边形是直接操作原生组件,可能需要调用地图实例的对应方法:
// 假设mapRef是地图实例
mapRef.value.clearPolygons()
mapPolygons.value = []
回到顶部