javascript - 作为反应,将 onClick 从 Google Maps 中的标记传递到 app.js 时遇到问题
问题描述
我想记onClick
下单击标记时的事件并将其传递给 App.js。地图正在加载并且代码运行,但是当我点击一个标记时我得到的只是onClick
console.log
在我的 Map.js 中返回一个空对象。
子组件:
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>
);
}
解决方案
不确定控制台记录整个功能是否会给你任何有用的东西..
如果你这样做,它会在控制台记录 id 吗?onClick={() => {markerClick()}}
cos markerClick 本质上就是handleMarkerClick 函数
推荐阅读
- sql - 将表中的列更新为 2 个不同的值
- javascript - 根据下拉值显示 div
- django - 如何将条带支付与现有的 django 表单集成,并且仅在支付成功时保存表单
- angular - 自定义电子邮件指令 Angular 7
- windows - 在 zeit/pkg npm 中找不到包含的 .ps1 文件以运行 node-powershell 命令
- javascript - Electron.js 错误:未定义要求
- c# - 在没有 DBSet 的情况下使用 c#linq 执行 SQL Server 存储过程
- javascript - 带有方形单元格的 HTML 表格适合屏幕高度
- javascript - 在 javascript var 中存储 JSON 值
- r - R:读取行的子集并将其转换为常规格式(首选 data.table 方法)