Я создаю сайт с большой главной картой. У меня есть несколько маркеров с всплывающими окнами, когда я нажимаю на создателей. Но теперь я хочу открыть всплывающее окно с внешним событием. Я использую избыточность для поддержания состояния маркеров, и я хотел бы открыть или нет всплывающее окно в зависимости от состояния создателя.
Нет атрибута open
или isOpen
во всплывающем компоненте в ответной листовке, например:
<Marker position={[this.props.lat, this.props.lon]}>
<Popup open={this.state.isOpen} >
The popup content
</Popup>
</Marker>
и API Leaflet не предоставляют ничего лучшего ...
Мне уже удалось добавить прослушиватель событий onMouseOver
с ref
, как показано ниже, но не более.
class Poi extends Component{
render(){
return (
<Marker position={[this.props.lat, this.props.lon]}
ref={marker=> { this.marker = marker }}
onMouseOver={() => {s.marker.leafletElement.bindPopup('Popup content').openPopup();}}>
</Marker>
)
}
Спасибо за вашу помощь! PS: я действительно новичок, чтобы реагировать, поэтому, пожалуйста, будьте снисходительны: -)