在react中,将onClick从谷歌地图中的Marker传递到app.js时出现问题



我想在点击标记并将其传递给App.js时注意onClick事件。映射正在加载,代码正在运行,但当我点击标记时,我得到的只是map.js中的onClickconsole.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功能

最新更新