当前位置: 首页 > 知识库问答 >
问题:

在react-bootstrap navbars with react-router-dom NavLinks中折叠选择

朱欣荣
2023-03-14

我正在制作一个网站,在那里我使用React-Router-DOM的NavLink组件来防止为单页应用程序体验重发器。

当我试图使站点具有响应性时,我一直试图使react-bootstrap中具有响应性的navbar在选择一个NavLink后崩溃,但是collapseOnSelect行为似乎对react-bootstrap附带的nav.link组件以外的任何东西都不起作用。

其他的解决方案已经推荐通过手动切换功能向导航(navexpanded:true)传递道具,但这似乎仍然会由于状态改变而强制重发。我想避免这样做的主要原因是我使用react-transitions-group在页面之间进行了转换。

<Navbar collapseOnSelect expand="md" variant="dark">
    <Container>
        <Navbar.Brand href="/"><Logo/></Navbar.Brand>
        <Navbar.Toggle aria-controls="responsive-navbar-nav" />
        <Navbar.Collapse id="responsive-navbar-nav">
            <Nav className="Navs ml-auto">
                <NavLink className="nav-link" to="/about">ABOUT</NavLink>
                <NavLink className="nav-link" to="/portfolio">PORTFOLIO</NavLink>
                <NavLink className="nav-link" to="/contact">CONTACT</NavLink>
            </Nav>
        </Navbar.Collapse>
    </Container>
</Navbar>

如有任何帮助,我们将不胜感激!

共有1个答案

南门英飙
2023-03-14

我也有同样的问题,我使用'react-bootstrap'中的nav.Link作为'react-router-dom'中的链接,不要忘记添加href attribut。在本例中,除pizzas链接外的所有链接都折叠导航栏。希望对你有帮助。

import React from 'react';
import { Navbar, Nav } from 'react-bootstrap';
import NavBrand from './NavBrand/NavBrand';
import { Link } from 'react-router-dom';

const Navigation = ({ brand }) => {
    return (
        <Navbar collapseOnSelect expand='sm' bg='dark' variant='dark' fixed='top'>
            <NavBrand text={brand.text} />
            <Navbar.Toggle aria-controls='responsive-navbar-nav' />
            <Navbar.Collapse id='responsive-navbar-nav'>
                <Nav className='mr-auto'>
                    <Nav.Link as={Link} to='/assiettes' href='/assiettes'>
                        ASSIETTES
                    </Nav.Link>
                    <Nav.Link as={Link} to='/pizzas'>
                        PIZZAS
                    </Nav.Link>

                    <Nav.Link as={Link} to='/sandwichs' href='/sandwichs'>
                        SANDWICHS
                    </Nav.Link>

                    <Nav.Link as={Link} to='/tacos' href='/tacos'>
                        TACOS
                    </Nav.Link>
                </Nav>
            </Navbar.Collapse>
        </Navbar>
    );
};

export default Navigation;
 类似资料:
  • 目前我的列表都有折叠,但它们链接到一个“打开”的状态,所以如果我打开一个列表,所有其他列表都打开。什么是最好的方法来保持崩溃彼此分开,而不为每个列表提供大量的状态。 ThreadList.tsx

  • Collapsibles 是可折叠元素,扩大时,点击。他们允许您隐藏不立即与用户相关的内容。 气孔 创建一个气孔式可折叠组件,只要增加类 popout。 <ul class="collapsible popout" data-collapsible="accordion"> 可折叠组件的 HTML 结构 <ul class="collapsible" data-collapsible="accor

  • 如果你仅仅希望看到你所处理的代码文件的结构概览,折叠会是个非常有用的工具。折叠可以隐藏像函数和循环这样的代码块,来简化你屏幕上显示的东西。 当你把鼠标移到数字栏上,你就可以点击显示的箭头来折叠代码段。你也可以使用快捷键alt-cmd-[和alt-cmd-]来折叠和展开代码段。 使用alt-cmd-shift-{来折叠所有代码段,使用alt-cmd-shift-}来展开所有代码段。你也可以使用cmd

  • zf数字 创建折叠,数字参数为折叠行数 zo 打开折叠 zc 关闭折叠 zd 删除折叠 :set foldcolumn=4 显示折叠树 :mkview 保存折叠 :loadview 读取折叠 zr 打开同一层级所有折叠 zm 关闭同一层级所有折叠 zO 打开某一行的所有层级折叠 zC 关闭某一行的所有层级折叠 zR 打开所有折叠 zM 关闭所有折叠 :set foldclose=all 光标离开折

  • 问题内容: 我尝试使用以下条件创建折叠并展开侧面菜单- 页面加载时,第一项(圆形)将处于展开视图中。一个项目可以一次扩展,例如,如果用户单击第二个项目(“规范”),则第一个项目将折叠。我还希望在收起/展开交易过程中使用一些CSS动画,例如平稳地向下/向上调整每个项目的主体部分并更改箭头图标。我的方法是动态地在每个项目()上添加/删除CSS类,例如- 因此,当一个项目处于展开视图时,它应类似于上一类

  • 当折叠/展开某个节点时,其他节点的复选框被选中或未选中。 要重现这种行为,只需展开所有节点,检查、折叠和将自动检查。 我怎样才能防止这种行为?在稍后的程序中,我希望通过TreeView并获取节点的状态(已选中或未选中)来使用它们。