【发布时间】:2020-10-30 12:34:34
【问题描述】:
与this question 相关,其最佳答案不再有效。默认情况下,NavDropdown 仅在单击时出现,但是我需要此下拉菜单在悬停时显示。我努力将“React-Bootstrap”加载到 stackoverflow 中以创建一个可重现的示例,但是这是一个基本的 Navbar 使用 react-bootstrap,它的特点是我尝试在悬停时显示下拉列表:
const [isStatsOpen, setIsStatsOpen] = useState(true);
<Navbar>
<Navbar.Brand>
<Link to='/'>
<img alt='company logo' src={My Logo} />
</Link>
</Navbar.Brand>
<Navbar.Toggle aria-controls='basic-navbar-nav' />
<Navbar.Collapse id='basic-navbar-nav'>
<Nav className='mr-auto'>
<NavDropdown title='Statistics'
onMouseEnter={() => setIsStatsOpen(true)}
onMouseLeave={() => setIsStatsOpen(false)}
open={isStatsOpen}
>
<NavDropdown.Item as={Link} to='/stats/'> Stats 1</NavDropdown.Item>
<NavDropdown.Item as={Link} to='/stats2/'>Stats 2</NavDropdown.Item>
</NavDropdown>
</Nav>
<Nav className='ml-auto'>
<DivisionSelect />
<AppSelect />
</Nav>
</Navbar.Collapse >
</Navbar >
从上面的链接帖子中,有 2 条回复获得了 10 多票,但是这些解决方案都不起作用。正如它在其中一个 cmets 中指出的那样:This doesn't work in newer versions, the dropdown isn't rendered until it's first click. You'd need to trigger the onclick before you could control via css。
检查页面后,我可以确认此人是正确的 - 在单击 NavDropdown 之前没有可显示的菜单。单击后,菜单就在那里,然后其他帖子中的解决方案就可以工作了。鉴于这种情况,我该如何解决这个问题?我的反应组件是否可以在加载时自动“单击”导航下拉菜单,这样菜单就会出现在悬停时?
谢谢!
【问题讨论】: