How can I make react-bootstrap's Dropdown open on mouse hover? How can I make react-bootstrap's Dropdown open on mouse hover? reactjs reactjs

How can I make react-bootstrap's Dropdown open on mouse hover?


export class Nav extends React.Component {  constructor(props) {    super(props)    this.state = { isOpen: false }  }  handleOpen = () => {    this.setState({ isOpen: true })  }  handleClose = () => {     this.setState({ isOpen: false })  }  render() {    return (       <Nav>        <NavDropdown          onMouseEnter = { this.handleOpen }          onMouseLeave = { this.handleClose }          open={ this.state.isOpen }          noCaret          id="language-switcher-container"        >          <MenuItem>Only one Item</MenuItem>        </NavDropdown>      </Nav>    )  }}

Hope this solves your issue.


A much cleaner pure CSS solution here:

.dropdown:hover .dropdown-menu { display: block;}


Having just run into this issue myself, I found out you need both the bootstrap CSS and a parameter for react-bootstrap. Add the following CSS:

.dropdown:hover>.dropdown-menu {  display: block;}

Then you need to add the parameter renderMenuOnMount={true} for the child elements to render on load:

<NavDropdown renderMenuOnMount={true}>  <NavDropdown.Item href="#">Item #1</NavDropdown.Item></NavDropdown>