我正在使用 google-maps-react 库添加一个带有标记的谷歌地图,这些标记会随着状态变化而更新。
我想在从 Google 的 place api 获取位置并将它们存储在状态后动态添加标记。我获取数据,将其添加到状态,然后调用 displayMarkers:
displayMarkers = () => {
this.state.newStations.map((station, index) => {
let lat = station.geometry.location.lat();
let lng = station.geometry.location.lng();
return (
<Marker
key={index}
id={index}
position={{
lat: lat,
lng: lng,
}}
onClick={() => console.log("You clicked me!")}
/>
);
});
};
状态正在更新,但标记未出现在地图上。
阅读 google-maps-react 的文档,在我看来,标记必须是 map 的子级才能覆盖到地图上。
标记 要在地图上放置标记,请将其作为组件的子项包含在内。
有没有办法将 Marker 作为 Map 的子级返回?
在 google maps API 中,您似乎可以这样做:
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
您传入值映射,这是您希望标记附加或覆盖到的映射。道具“地图”存在于 google-maps-react 但 Marker 中似乎没有接受地图的属性。