Javascript React google map-如何将click listener添加到StopperProgation()的覆盖元素

Javascript React google map-如何将click listener添加到StopperProgation()的覆盖元素,javascript,reactjs,google-maps,react-google-maps,Javascript,Reactjs,Google Maps,React Google Maps,我正在使用谷歌地图,并在地图上添加了一个覆盖图。当我点击overlay时,它会触发位于overlay div后面的位置的google信息窗口,因为MapPanes.mapPane的优先级高于overlayLayer 我从这里找到了一个解决方案,但这是在纯JavaScript实现中实现的 如何在react google maps中添加google.maps.event.addDomListener(div,'click',cancelEvent)(可能使用refs,但也尝试过这个) 下面是我用来

我正在使用谷歌地图,并在地图上添加了一个覆盖图。当我点击overlay时,它会触发位于overlay div后面的位置的google信息窗口,因为MapPanes.mapPane的优先级高于overlayLayer

我从这里找到了一个解决方案,但这是在纯JavaScript实现中实现的

如何在react google maps中添加
google.maps.event.addDomListener(div,'click',cancelEvent)
(可能使用refs,但也尝试过这个)

下面是我用来生成地图和覆盖图的代码

import { withGoogleMap, GoogleMap, InfoWindow, Marker, OverlayView } from "react-google-maps";

const GeolocationGoogleMap = withGoogleMap(props => (  
  <GoogleMap defaultZoom={16} center={props.center} ref={ props.onGoogleMapRef }>
    {
        props.markers.map((marker,index) => (
            <Marker
            key={index}
            position={marker.position || {} }
            onClick={() => props.onMarkerClick(marker)}
            {...marker}
            >
              {
                marker.showInfo && <OverlayView
                  position={ marker.position }
                  mapPaneName={OverlayView.OVERLAY_MOUSE_TARGET}
                  getPixelPositionOffset={getPixelPositionOffset}
                  onClick={ () => props.onMarkerClosemarker( marker.markerId ) }
                  ref={ (e) => props.onOverlayRef(e) }
                >
                    { marker.content } 
                </OverlayView>
              }
            </Marker>        
        ))
    }
  </GoogleMap>
));

class GoogleMapContainer extends Component {
    onOverlayRef = ref =>{
        console.log( ">>>>>>>>>> OVERLAY REF >>>>>>>>>>>>>>>>>>" );
        console.log( ref );
    }

    render() {
        return (
          <div>
            <GeolocationGoogleMap
              containerElement={
                <div className="google-map" />
              }
              mapElement={
                <div style={{ height: `100%` }} />
              }
              onMarkerClick={this.handleMarkerClick.bind(this)}
              center={this.state.center}
              mapcenter={this.state.mapcenter}
              content={this.state.content}
              radius={this.state.radius}
              markers={this.state.markers}
              onMarkerClosemarker={this.handleMarkerClose.bind(this)}
              onGoogleMapRef={this.setMapRef}
              onOverlayRef={this.onOverlayRef}
            >
            </GeolocationExampleGoogleMap>
          </div>
        );
    }
}
import{withGoogleMap,GoogleMap,InfoWindow,Marker,OverlayView}来自“react google maps”;
const GeolocationGoogleMap=使用GoogleMap(道具=>)
{
道具.标记.地图((标记,索引)=>(
在Markerclick(标记器)上的道具]
{…标记}
>
{
marker.showInfo&&props.onMarkerClosemarker(marker.markerId)}
ref={(e)=>props.onOverlayRef(e)}
>
{marker.content}
}
))
}
));
类GoogleMapContainer扩展组件{
onOverlayRef=ref=>{
console.log(“>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”;
控制台日志(ref);
}
render(){
返回(
);
}
}

能否共享当前代码?更新的代码,请参阅我的编辑。能否共享当前代码?更新的代码,请参阅我的编辑。