当用户点击 react-google-maps 中的地图或标记时执行操作
Perform action when user clicks on map or marker in react-google-maps
我正在尝试使用 react-google-maps 包在我的 React 项目中实现 google 地图。
地图可见,但我无法执行其他事件操作,例如 onClick。
文档和示例没有用,因为它们使用的是重组。然而,由于在 React v16 中释放了钩子,不再需要重构。
下面是代码,请指出我做错了什么。
关于如何编写基于钩子的代码而不是重构的技巧也将非常有帮助。
另外我是 React 新手,所以可能犯了明显的错误
function handleMarkerClick() {
console.log("function called");
}
const MyMapComponent = withScriptjs(
withGoogleMap(props => ( <GoogleMap defaultZoom = {13} defaultCenter = {{ lat: 19.1998, lng: 72.8426 }}>
{props.isMarkerShown && ( <Marker position = { { lat: 19.1998, lng: 72.8426 }} onClick = { props.onMarkerClick } />)}
</GoogleMap>
))
);
function Register() {
return ( <Wrapper>
<MyMapComponent isMarkerShown = { true }
googleMapURL = "https://maps.googleapis.com/maps/api/js?key=*******&v=3.exp&libraries=geometry,drawing,places"
loadingElement = { < div style = {
{
height: `100%`
}
}
/>}
containerElement = { < div style = {
{
height: `100vh`
}
}
/>}
mapElement = { < div style = {
{
height: `100%`
}
}
/>} / >
< /
Wrapper>
);
}
export default Register;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
您需要更新标记组件中的代码,例如 onClick = { (event) => { props.onMarkerClick (event) } } 然后您将获得输出纬度和lang 来自 handleMarkerClick(event) { console.log(event.latLng.lat())}
中的事件
我正在尝试使用 react-google-maps 包在我的 React 项目中实现 google 地图。
地图可见,但我无法执行其他事件操作,例如 onClick。 文档和示例没有用,因为它们使用的是重组。然而,由于在 React v16 中释放了钩子,不再需要重构。
下面是代码,请指出我做错了什么。 关于如何编写基于钩子的代码而不是重构的技巧也将非常有帮助。 另外我是 React 新手,所以可能犯了明显的错误
function handleMarkerClick() {
console.log("function called");
}
const MyMapComponent = withScriptjs(
withGoogleMap(props => ( <GoogleMap defaultZoom = {13} defaultCenter = {{ lat: 19.1998, lng: 72.8426 }}>
{props.isMarkerShown && ( <Marker position = { { lat: 19.1998, lng: 72.8426 }} onClick = { props.onMarkerClick } />)}
</GoogleMap>
))
);
function Register() {
return ( <Wrapper>
<MyMapComponent isMarkerShown = { true }
googleMapURL = "https://maps.googleapis.com/maps/api/js?key=*******&v=3.exp&libraries=geometry,drawing,places"
loadingElement = { < div style = {
{
height: `100%`
}
}
/>}
containerElement = { < div style = {
{
height: `100vh`
}
}
/>}
mapElement = { < div style = {
{
height: `100%`
}
}
/>} / >
< /
Wrapper>
);
}
export default Register;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
您需要更新标记组件中的代码,例如 onClick = { (event) => { props.onMarkerClick (event) } } 然后您将获得输出纬度和lang 来自 handleMarkerClick(event) { console.log(event.latLng.lat())}
中的事件