小编Man*_*rte的帖子

InfoWindow 使用react-google-maps 显示两个信息窗口

我正在使用react-google-maps库,到目前为止我一直做得很好。我的应用程序从我的后端接收带有位置的 json,我正在映射它们以在地图上添加标记,它们显示得很好。这些标记有一个 OnClick 函数,用于设置 ReactHook 上的信息。

当我的钩子状态发生变化时,我的信息窗口会触发并自动显示,这很好。问题是一个小信息窗口没有与另一个同时触发的信息,我已经尝试找到错误几个小时了,但找不到它,我已经检查了代码,而且我是从浏览器检查组件,但反应开发人员工具无法识别那个小信息窗口。

这是我的代码:

function Map(props){
    const [selectedTienda, setSelectedTienda] = useState(null)
    const options ={
        styles: MapStyles,
        disableDefaultUI: true,
  
    }
    return(
        <GoogleMap
        defaultZoom={17} 
        defaultCenter={{lat: 29.0824139, lng: -110.966389}}
        options={options}

        >
            {props.items.map(tienda =>(
        <Marker
        key={tienda['tienda.id']}
        position={{
            lat: parseFloat(tienda['tienda.ubicacion.lat']),
            lng: parseFloat(tienda['tienda.ubicacion.lng'])
        }}
        onClick={()=>{
            setSelectedTienda(tienda);
        }}
        />
        ))}
         {selectedTienda ? (
            <InfoWindow position={{
                lat: parseFloat(selectedTienda['tienda.ubicacion.lat']),
                lng: parseFloat(selectedTienda['tienda.ubicacion.lng'])
            }}
            onCloseClick={()=>{setSelectedTienda(null)}}
            >
            <div><h4>This is the <br/>INFOWINDOW I WANT</h4></div>
            </InfoWindow>
        ): null}
               
               
        </GoogleMap>
    )
}
const MyMapComponent = withScriptjs(withGoogleMap(Map))
Run Code Online (Sandbox Code Playgroud)

这也是我的噩梦的图像:

在此输入图像描述

这是我的反应开发工具所显示的内容,这只是主信息窗口

在此输入图像描述

google-maps infowindow reactjs react-google-maps react-hooks

11
推荐指数
2
解决办法
2975
查看次数