Google карты, не могу добраться до информационного окна извне - PullRequest
0 голосов
/ 01 ноября 2018

Привет всем. У меня возникла проблема, связанная с событием нажатия на элементы списка на боковой панели. Проблема связана с функцией istEntryClick, когда я пытаюсь использовать в ней информационное окно, приложение вылетает. Я попытался зарегистрировать функцию без информационного окна, чтобы проверить, показывает ли консоль правильную запись, по которой я щелкаю, и это действительно так. это соответствующий фрагмент кода для того, что я делаю:

renderMap = () => {
    loadScript("https://maps.googleapis.com/maps/api/js?key='')
    window.initMap = this.initMap
  }

// instantiate map

  initMap = () => {
       const map = new 
       window.google.maps.Map(document.getElementById('map'), {
         center: {lat:, lng:},
         zoom: 8
       })

       //Create InfoWindow
       const infowindow = new window.google.maps.InfoWindow();
       //Set Dynamic Markers
       this.state.venues.map(newVenue => {

        //create marker
         const marker = new window.google.maps.Marker({
           position: {lat: newVenue.venue.location.lat, lng: 
           newVenue.venue.location.lng},
           map: map,
           id: newVenue.id,
           name: newVenue.venue.name,
           animation: window.google.maps.Animation.DROP
         })

         //infoWindow on click event
         marker.addListener('click', () => {
           if (marker.getAnimation() !== null) { marker.setAnimation(null); }
           else { marker.setAnimation(window.google.maps.Animation.BOUNCE); }
           setTimeout(() => { marker.setAnimation(null) }, 2000)
         });
         window.google.maps.event.addListener(marker, 'click', () => {
           infowindow.setContent(marker.name);
           infowindow.open(map, marker);
           map.setCenter(marker.position);

         });
         this.state.markers.push(marker);
         this.setState({ showedVenues : this.state.venues })
     });
}

    listEntryClick = (venue) => {
      let marker = this.state.markers.filter(m => m.id === venue.id)[0];
      this.infowindow.setContent(marker.name)
      this.infowindow.open(this.map, marker);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...