react-bootstrap: Tooltip doesn't show when OverlayTrigger child is a custom React component
When I place a custom React component inside an OverlayTrigger, it causes the tooltip to no longer display on mouse hover. Example:
function Avatar(props) {
return (<img src={props.url} />);
}
<OverlayTrigger overlay={(<Tooltip id="hi">Hello, world!</Tooltip>)} placement="top">
<Avatar url="http://i.imgur.com/cOkr6Um.gif" />
</OverlayTrigger>
Whereas the following does work:
<OverlayTrigger overlay={(<Tooltip id="hi">Hello, world!</Tooltip>)} placement="top">
<img src="http://i.imgur.com/cOkr6Um.gif" />
</OverlayTrigger>
(react-bootstrap@v0.30.2)
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 18 (2 by maintainers)
An easy fix is to wrap your custom component in an extra div:
@nielk
This should probably be part of the docs?
you need to pass the props through to the DOM element. it’s not working because you are swallowing the event handlers in avatar
Thanks ! It works well, I’m my case, I only take onMouseOut and onMouseOver:
Thank for the work, very good project
How do you type
...restfor TS? It kind of seems to break having a clean component interface.