【发布时间】:2021-10-18 23:20:18
【问题描述】:
我想尝试在 react 中切换路由,但它不起作用。它不呈现页面。当我单击路由时,它会更改链接,但不会呈现组件。我使用 header 来导航我的路线,并在 Header 文件中使用了 Link。
import Login from "./components/Login"
import Header from "./components/Header"
import Home from "./components/Home"
import {BrowserRouter as Router , Route, Switch } from "react-router-dom"
import { useState } from 'react';
import Logout from './components/Logout'
import Signup from './components/Signup';
function App() {
const [login,setLogin] = useState(false)
console.log("login in App: ",login)
const loginStatus = ()=>{
console.log("login in App and function: ",login)
setLogin(!login)
return "made it"
}
return (
<Router>
<Switch>
<Header login={login} />
<Route exact path="/">
<Home />
</Route>
<Route path="/Login">
<Login method={loginStatus}/>
</Route>
<Route path="/Signup">
<Signup />
</Route>
<Route path="/Logout" >
<Logout method={loginStatus} />
</Route>
</Switch>
</Router>
);
}
export default App;
export default function Header(props){
console.log("login in Header", props.login)
let login = props.login
return(<>
<Navbar variant="dark" bg="dark" expand="lg">
<Container fluid>
<Navbar.Brand ><Link to="/" className="NavBar">Book_Club</Link></Navbar.Brand>
<Nav>
<Nav.Item >
<Nav.Link ><Link to={login === true ?"/Logout": "/Login"} className="NavItem">{login === true ? "Logout" : "Login"}</Link></Nav.Link>
</Nav.Item>
<Nav.Item >
<Nav.Link className="NavItem"><Link to="/Signup" className="NavItem">Signup</Link></Nav.Link>
</Nav.Item>
</Nav>
</Container>
</Navbar>
【问题讨论】:
-
尝试将
组件移到 组件之外。 -
您好,请提供一个工作示例,以便更好地了解您的情况。您可以为此使用代码和框。检查这些准则stackoverflow.com/help/minimal-reproducible-example
标签: javascript reactjs routes react-router react-router-dom