javascript - 如何检查 React Bootstrap Navbar 是否已折叠?

标签 javascript reactjs navbar react-bootstrap

我想更改折叠的导航栏的内容,但找不到它的任何 Prop 或事件。 这是我的导航栏,下拉菜单处于非折叠状态。

1

并折叠导航栏。需要为其他内容更改下拉菜单。

2

示例代码

<Navbar expand="sm" bg="primary" variant="dark" fixed="top">
    <Navbar.Toggle aria-controls="responsive-navbar-nav"/>
    <Navbar.Collapse id="responsive-navbar-nav">
        <Nav className="ml-auto">
            <NavDropdown>
                <NavDropdown.Item>Profile</NavDropdown.Item>
                <NavDropdown.Divider />
                <NavDropdown.Item>Log out</NavDropdown.Item>
            </NavDropdown>
        </Nav>
    </Navbar.Collapse>
</Navbar>

如何以正确的方式做到这一点? 提前致谢!

最佳答案

我能够通过绑定(bind)到 Navbar 的 onToggle 函数并使用它来设置 bool 值来做到这一点。

const Header = () => {
    const [expanded, setExpanded] = useState(false)

    const setToggle = () => {
        console.log('toggle');
        setExpanded(true)
    }
    
    return (
            <Navbar expand="sm" onToggle={setToggle}>
                <Navbar.Toggle aria-controls="responsive-navbar-nav"/>
                <Navbar.Collapse id="responsive-navbar-nav">
                    <Nav className="ml-auto">
                        {expanded && <NavDropdown>
                            <NavDropdown.Item>Profile</NavDropdown.Item>
                            <NavDropdown.Divider />
                            <NavDropdown.Item>Log out</NavDropdown.Item>
                        </NavDropdown>}
                    </Nav>
                </Navbar.Collapse>
            </Navbar>
    )
}

关于javascript - 如何检查 React Bootstrap Navbar 是否已折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60806632/

相关文章:

html - 导航栏对齐部分右侧部分左侧错误

html - 将子菜单(下拉)方向从垂直更改为水平

javascript - 从 Angular 组件中的指定标签中获取内容

javascript - Wrapper.instance() 不是函数

javascript - 如何从 Navigator 之外的某个位置进行导航?

javascript - PrivateRoute 在 reactjs react-router-dom 中不起作用

reactjs - Prop 的 TypeScript 条件类型

javascript - 单击时使导航栏折叠/关闭

javascript - Polymer -> 类似于绑定(bind)中的 WPF/SL DataContext 的概念

javascript - 如何在脚本标签中设置类或样式?