我想在点击标记并将其传递给App.js时注意onClick
事件。映射正在加载,代码正在运行,但当我点击标记时,我得到的只是map.js中的onClick
console.log
返回一个空对象。
子组件:
function MyComponent( places, onMarkerClickMap ) {
let allTheMarkers =
.
.
.
})
let markerClick = onMarkerClickMap;
let foundMarkers = places.foundPlaces.map(place => {
return (
<Marker
key={place.id}
position={{ lat: place.lat, lng: place.lng }}
icon={place.alive ? icon1 : iconDead}
onClick={() => {console.log(markerClick)}}
/>
);
})
return (
<LoadScript
googleMapsApiKey={API}
>
<GoogleMap
mapContainerStyle={containerStyle}
center={center}
zoom={11.3}
options={{styles: mapStyles}}
>
{foundMarkers ? foundMarkers : allTheMarkers}
</GoogleMap>
</LoadScript>
)
}
父组件:
handleMarkerClick = (e) => {
const id = e.target;
console.log(id);
}
render() {
return (
<div className="container">
<div className="wrapper">
<Map
places={this.state.places}
foundPlaces={this.state.foundPlaces}
onMarkerClickMap={this.handleMarkerClick}
/>
</div>
</div>
);
}
您不调用markerClick
。我认为你应该做这样的事情:
<Marker
key={place.id}
position={{ lat: place.lat, lng: place.lng }}
icon={place.alive ? icon1 : iconDead}
onClick={() => markerClick()}
/>
不确定控制台日志记录整个功能是否会给您带来任何有用的东西。。
如果你这样做,它会控制台记录id吗?onClick={((=>{markerClick((}}
cos markrClick本质上是手柄markerClick功能