我在页面上使用了Navbar组件,该组件使用Router来更改内容。到目前为止,一切都正常。但是我无法弄清楚如何在单击链接时将Navbar中链接的状态设置为活动状态。我认为,我必须将Nav元素的activeKey绑定到活动内容的location.pathname。
这是我的Navbar组件:
import React from 'react';
import { Navbar, Nav } from 'react-bootstrap';
class Navbar extends React.Component{
constructor() {
super();
this.state = {
show: false
};
}
render(){
return(
<div>
<Navbar collapseOnSelect expand="lg" bg="dark" variant="dark">
<Navbar.Brand >Filmmusic</Navbar.Brand>
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse id="responsive-navbar-nav">
<Nav activeKey="/" className="mr-auto">
<Nav.Link href="/">Home</Nav.Link>
<Nav.Link href="/about">About</Nav.Link>
<Nav.Link onClick = {()=>{this.handleModal()}}>Contact</Nav.Link>
</Nav>
<Nav>
<Nav.Link href="/impressum">Impressum</Nav.Link>
<Nav.Link href="/datenschutzerklaerung">Datenschutzerklärung</Nav.Link>
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
)
}
}
export default Navbar;
NavBar
组件与withRouter
一起包装之前,您必须使用BrowserRouter
进行包装。正如您所提到的,您尝试过了,您是否注意到他们在App
组件中将HeaderWithRouter
包装在Router
中。 - Darsh Shah