use*_*065 3 reactjs react-bootstrap react-router-dom
我正在制作一个网站,我在其中使用 react-router-dom 的 NavLink 组件来防止单页应用程序体验的重新渲染。
当我试图使站点具有响应性时,我一直在尝试在选择 NavLink 后使响应式导航栏从 react-bootstrap 崩溃,但是 collapseOnSelect 行为似乎不适用于除 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>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
Yoa*_*amb 11
我有同样的问题,我使用来自“react-bootstrap”的 Nav.Link 作为来自“react-router-dom”的链接,不要忘记添加 href 属性。在此示例中,除比萨饼链接之外的所有链接都会折叠导航栏。希望对你有帮助。
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |