diff --git a/src/pages/dashboard/monitor/components/Map/index.tsx b/src/pages/dashboard/monitor/components/Map/index.tsx index bc33d877..43cc2b16 100644 --- a/src/pages/dashboard/monitor/components/Map/index.tsx +++ b/src/pages/dashboard/monitor/components/Map/index.tsx @@ -1,7 +1,6 @@ import { PageLoading } from '@ant-design/pro-components'; import { HeatmapLayer, MapboxScene, PointLayer } from '@antv/l7-react'; -import { useEffect, useState } from 'react'; -import { queryMapGeo, queryMapGrid } from '@/pages/dashboard/monitor/service'; +import { useQuery } from '@tanstack/react-query'; const colors = [ '#eff3ff', @@ -14,31 +13,29 @@ const colors = [ ]; export default function MonitorMap() { - const [data, setData] = useState[] | null>(null); - const [grid, setGrid] = useState[] | null>(null); - const [loading, setLoading] = useState(false); - - useEffect(() => { - async function fetchData() { + const { isLoading, data } = useQuery({ + queryKey: ['map-data'], + queryFn: async () => { const [geoData, gridData] = await Promise.all([ - queryMapGeo(), - queryMapGrid(), + fetch( + 'https://gw.alipayobjects.com/os/bmw-prod/c5dba875-b6ea-4e88-b778-66a862906c93.json', + ).then((d) => d.json()), + fetch( + 'https://gw.alipayobjects.com/os/bmw-prod/8990e8b4-c58e-419b-afb9-8ea3daff2dd1.json', + ).then((d) => d.json()), ]); - setData(geoData); - setGrid(gridData); - setLoading(true); - } - fetchData(); - }, []); + return { geoData, grid: gridData }; + }, + }); - return loading === false ? ( + return isLoading ? ( ) : ( - {grid && ( + {data?.grid && ( )} - {data && [ + {data?.geoData && [