Используя API Google Maps Foursquare, моя цель - использовать свойство фотографии места, предоставленное Foursquare, и, если оно доступно в метаданных места, отобразить его вместе с названием места в информационном окне API Карт Google.Если доступно только одно из двух свойств, я хочу отобразить только доступное.Если venueInfo не определено или ни одно из свойств не доступно, я хочу просто отобразить «Информация недоступна» в информационном окне.Я попытался сделать это с условным оператором с несколькими условиями.
Для хотя бы одного маркера иногда отображается информация, но иногда я получаю эти ошибки.
Я не понимаю, что не так или как это исправить.Если свойство 'name' не определено, не должно ли условное выражение просто вернуться к отображению "Информация недоступна"?И если информация о маркере ранее отображалась нормально, как она может перестать работать, когда я снова нажимаю на тот же маркер?
Вот мое условное утверждение для рендеринга внутри информационного окна:
<InfoWindow>
{venueInfo.name && venueInfo.bestPhoto ?
<Fragment>
<p>{venueInfo.name}</p>
<img src={`${venueInfo.bestPhoto.prefix}200x200${venueInfo.bestPhoto.suffix}`}
alt={"Venue"}
/>
</Fragment> : venueInfo.name ? <p>{venueInfo.name}</p> : venueInfo && venueInfo.bestPhoto ? <img src={`${venueInfo.bestPhoto.prefix}200x200${venueInfo.bestPhoto.suffix}`}
// Screen readers already announce as image; don't need the word "image", "photo", etc.
alt={"Venue"}
/> : <p>No info available</p>}
</InfoWindow>
Для справки вот полный код компонента на GitHub.