当用户点击 react-google-maps 中的地图或标记时执行操作

Posted

技术标签:

【中文标题】当用户点击 react-google-maps 中的地图或标记时执行操作【英文标题】:Perform action when user clicks on map or marker in react-google-maps 【发布时间】:2019-06-18 14:51:11 【问题描述】:

我正在尝试使用 react-google-maps 包在我的 react 项目中实现谷歌地图。

地图是可见的,但是我无法执行其他事件操作,例如 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>

【问题讨论】:

【参考方案1】:

您需要在标记组件中更新 onClick = (event) => props.onMarkerClick (event) 之类的代码,然后从 中的事件中获取输出 lat 和 lang handleMarkerClick(event) console.log(event.latLng.lat())

【讨论】:

以上是关于当用户点击 react-google-maps 中的地图或标记时执行操作的主要内容,如果未能解决你的问题,请参考以下文章

React-google-maps 用户位置

React-Google-Maps 显示两个标记,一个在原始位置,另一个标记跟随地图的新中心 onDrag

如何在 react-google-maps 中添加标记?

Reactjs react-google-maps 未定义

如何使用 react-google-maps 显示多个标记

如何使用 react-google-maps 在 React.JS 中获取多边形的坐标