简介:
为了减少在通过url传递过多的参数,我们使用了localforage的库来存储数据,但面临的问题是当用户清除缓存后就会拿不到数据,出现错误。为了解决这个问题,我们使用了高德的接口。
一:路由传参
这里我们只传递一个PIO点的key
router.replace({
name: "search-result",
query: {
pointId: item.key
}
})
二、拿到参数
const data: any = await localforage.getItem("resultPoint")
if (data) {
point.value = JSON.parse(data)
} else {
point.value = await mapWork.getGodeApi(pointId as string)
}
mapWork.flyToTarget(point.value.positions, point.value.name)
当有缓冲中有数据我们就从缓冲中获取,否则就通过调用高德的API获取
// 调用高德接口
export function getGodeApi(pointId: string) {
return queryGaodePOI
.detail({
id: pointId
})
.then((data: any) => {
const positions = [Number(data.location.split(",")[0]), Number(data.location.split(",")[1])]
return {
key: data.id,
name: data.name,
address: data.address,
type: data.type,
positions: positions,
photos: data.photos
}
})
}