使用google-map-react包,我MapView
在 TypeScript 中创建了一个组件,如下所示。
export function MapView<I extends Mappable>({ getData }: MapViewProps<I>): JSX.Element {
const [mapZoom, setMapZoom] = useState(5);
const [mapBounds, setMapBounds] = useState<[number, number, number, number]>([-1, -1, -1, -1]);
return (
<div className="map-container">
<GoogleMapReact
bootstrapURLKeys={{ key: "API_KEY" }}
defaultCenter={{
lat: 39.381266,
lng: -97.922211,
}}
zoom={mapZoom}
options={{ maxZoom: 10 }}
onChange={({ zoom, bounds }) => {
setMapZoom(zoom);
setMapBounds([bounds.nw.lng, bounds.se.lat, bounds.se.lng, bounds.nw.lat]);
}}
/>
</div>
);
}
如果用户尚未触摸地图,我想让地图慢慢水平滚动。我的第一个想法是添加一个useEffect
自动更新边界的,但这似乎并不理想。有什么想法吗?