Привет всем. У меня возникла проблема, связанная с событием нажатия на элементы списка на боковой панели.
Проблема связана с функцией 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);
}