当前位置: 首页 > 知识库问答 >
问题:

Google-maps-react标记不显示InfoWindow onClick

吴西岭
2023-03-14

当我点击google maps标记时,它会注册点击,但我无法在状态改变后显示InfoWindow。

尝试在单击时设置/读取更新的状态

import React from 'react';
import {Map, InfoWindow, Marker, GoogleApiWrapper} from 'google-maps-react'; 

export class BathroomMap extends React.Component{

constructor(props){
    super(props);
    this.state = {
        gmapsAPI: "https://maps.googleapis.com/maps/api/js?key="+ this.API_KEY +"&callback=initMap",
        center: {
            lat: 40.7367,
            lng: -73.9899
          },
        zoom: 15,
        showingInfoWindow: false,
        activeMarker: {},
        selectedPlace: {},
        infoWindowOpen: false,
    }

    this.handleToggleOpen = this.handleToggleOpen.bind(this);
}

handleToggleOpen = () => {
    console.log("Marker Clicked");
    this.setState({
       infoWindowOpen: !this.state.infoWindowOpen,
    });
}

render() {
    return (

            <Map google={window.google} zoom={14} initialCenter={this.state.center}>
                <Marker onClick={this.handleToggleOpen}
                    name={'Current location'} />
                <InfoWindow open={this.state.infoWindowOpen} onClose={this.onInfoWindowClose}>
                    <div>
                        <h1>Marker Info Placeholder</h1>
                    </div>
                </InfoWindow>
            </Map>

    );
}
}

BathroomMap = GoogleApiWrapper({
  apiKey: (/*Omitted*/)
})(BathroomMap)

'''

我期望google map标记会出现某种类型的InfowWindow,但相反,infowWindowOpened返回的是未定义的

共有1个答案

高嘉熙
2023-03-14

InfoWindow上的google-maps-react文档如下:

组件的可见性由可见道具控制。可见道具是一个布尔(Proptypes.bool),当为true时显示 ,当为false时隐藏它。

有两种方法可以控制 组件的位置。可以使用位置道具,也可以使用标记道具将 组件直接连接到现有的 组件。

我的答案和链接的codesandbox在相关的线程React和Google-Maps-React。不显示InfoWindow希望对您有所帮助。

 类似资料:
  • 问题内容: 我的Android应用程序中有一个 Google Maps v2 ,上面有一些标记。当用户单击这些标记之一时,将弹出一个标题。如何在没有用户点击的情况下始终显示这些标题? 问题答案: 只需致电。请参阅https://developers.google.com/maps/documentation/android/marker#info_windows和https://developer

  • 问题内容: 我正在使用NPM包创建Google Map和几个标记。 问题: 我们如何将默认的Google Maps标记添加到地图? 从这个Github问题来看,似乎我们需要使用onGoogleApiLoaded函数访问内部Google Maps API 。 参考Google Maps JS API文档中的示例 ,我们可以使用以下代码来呈现标记,但是如何定义对的引用? 当前代码: 问题答案: 从自述

  • 我试图显示存储在mongodb数据库中的lat和lng的标记列表。我正在使用google-maps-react,这是我的子地图组件 我从这里的endpoint得到坐标 仍未显示

  • 我正在构建代码段块,以便在