问题描述:在react-google-maps中,如何实现多个信息窗口与标记id的传递?
回答: 在react-google-maps中,可以通过以下步骤实现多个信息窗口与标记id的传递:
import React, { useState } from 'react';
const MyMapComponent = () => {
const [selectedMarkerId, setSelectedMarkerId] = useState(null);
// 其他代码...
return (
// 渲染地图组件和标记
);
};
export default MyMapComponent;
import React, { useState } from 'react';
import { Marker, InfoWindow } from 'react-google-maps';
const MyMapComponent = () => {
const [selectedMarkerId, setSelectedMarkerId] = useState(null);
const handleMarkerClick = (markerId) => {
setSelectedMarkerId(markerId);
};
// 其他代码...
return (
// 渲染地图组件和标记
<Marker
position={{ lat: 37.7749, lng: -122.4194 }}
onClick={() => handleMarkerClick('marker1')}
/>
<Marker
position={{ lat: 37.7739, lng: -122.4312 }}
onClick={() => handleMarkerClick('marker2')}
/>
// 其他标记...
);
};
export default MyMapComponent;
import React, { useState } from 'react';
import { Marker, InfoWindow } from 'react-google-maps';
const MyMapComponent = () => {
const [selectedMarkerId, setSelectedMarkerId] = useState(null);
const handleMarkerClick = (markerId) => {
setSelectedMarkerId(markerId);
};
// 其他代码...
return (
// 渲染地图组件和标记
<Marker
position={{ lat: 37.7749, lng: -122.4194 }}
onClick={() => handleMarkerClick('marker1')}
>
{selectedMarkerId === 'marker1' && (
<InfoWindow>
{/* 在这里显示相关信息 */}
</InfoWindow>
)}
</Marker>
<Marker
position={{ lat: 37.7739, lng: -122.4312 }}
onClick={() => handleMarkerClick('marker2')}
>
{selectedMarkerId === 'marker2' && (
<InfoWindow>
{/* 在这里显示相关信息 */}
</InfoWindow>
)}
</Marker>
// 其他标记...
);
};
export default MyMapComponent;
通过以上步骤,你可以在react-google-maps中实现多个信息窗口与标记id的传递。根据选中的标记id,显示相应的信息窗口。你可以根据实际需求,自定义信息窗口的内容和样式。
腾讯云相关产品推荐:腾讯云地图服务(https://cloud.tencent.com/product/tianditu)提供了丰富的地图展示和地理位置相关的功能,可以与react-google-maps结合使用,实现更多地图相关的需求。
领取专属 10元无门槛券
手把手带您无忧上云