I tried everything I found on google and I can't figure out how to trigger the popup.
<Marker
  position={this.props.position}
  onMouseOver={() => { openPopup() }}
  onMouseOut={() => { closePopup() }}
>
  <Popup>
     "HI"
  </Popup>
</Marker>
Note: I know I can't trigger the function openPopup there its just to show where I want to implement the trigger function to toggle the popup on mouse hover.
Can someone please help, Thanks.
Leaflet Marker object is accessible via event.target property of mouseover and mouseout events, so popup could be opened/closed like this:
<Marker
    position={position}
    onMouseOver={(e) => {
      e.target.openPopup();
    }}
    onMouseOut={(e) => {
      e.target.closePopup();
    }}
  >
    <Popup>Sydney</Popup>
  </Marker>
Demo
Using React Leaflet v3, the solution is easier and cleaner, use Tooltip instead of Popup, e.g.:
<Marker position={this.props.position}>
  <Tooltip>I appear on mouse over</Tooltip>
</Marker>
In particular, I have found useful to also add sticky property for Tooltip. There are more examples for tooltips in the documentation, which covers basic tooltips, sticky tooltips or permanent tooltips, with offsets and many more.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With