javascript 使用React路线时出现黑屏

zc0qhyus  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(119)

我试图使用React路由器为我的网站,但当我添加路线我的网站只是显示一个空白的白色屏幕。
我的导航栏:

import Container from 'react-bootstrap/Container';
import Nav from 'react-bootstrap/Nav';
import Navbar from 'react-bootstrap/Navbar';
import NavDropdown from 'react-bootstrap/NavDropdown';
import {BrowserRouter as Router, Routes, Route, Link} from "react-router-dom";
import Home from "../pages/Home.js" 
import About from "../pages/About.js" 

function NavbarComp () {
    return (
        <Router>
            <div>
                <Navbar bg="light" expand="lg">
                <Container>
                    <Navbar.Brand href="#home">React-Bootstrap</Navbar.Brand>
                    <Navbar.Toggle aria-controls="basic-navbar-nav" />
                    <Navbar.Collapse id="basic-navbar-nav">
                    <Nav className="me-auto">
                        <Nav.Link as={Link} to={"/home"}>Home</Nav.Link>
                        <Nav.Link as={Link} to={"/about"}>About</Nav.Link>
                        <NavDropdown title="Dropdown" id="basic-nav-dropdown">
                        <NavDropdown.Item href="#action/3.1">Action</NavDropdown.Item>
                        <NavDropdown.Item href="#action/3.2">
                            Another action
                        </NavDropdown.Item>
                        <NavDropdown.Item href="#action/3.3">Something</NavDropdown.Item>
                        <NavDropdown.Divider />
                        <NavDropdown.Item href="#action/3.4">
                            Separated link
                        </NavDropdown.Item>
                        </NavDropdown>
                    </Nav>
                    </Navbar.Collapse>
                </Container>
                </Navbar>

                <Routes>
                    <Route path="/home" element={<Home />}>
                        <Home />
                    </Route>
                    <Route path="/about" element={<About />}>
                        <About />
                    </Route>
                </Routes>
            </div>
        </Router>
    )
}

export default NavbarComp

当我删除路线时,导航栏实际上是显示的。我不确定我可能做错了什么。

eni9jsuy

eni9jsuy1#

我刚意识到Route标记在其自身内结束,因此我需要将我的路线更改为:

<Route path="/home" element={<Home />} />
baubqpgj

baubqpgj2#

我的猜测是,控制台中出现了一个错误,该错误涉及到尝试将非Route组件呈现为Route组件的子组件。

<Routes>
  <Route path="/home" element={<Home />}>
    <Home /> // <-- invalid
  </Route>
  <Route path="/about" element={<About />}>
    <About /> // <-- invalid
  </Route>
</Routes>

移除无效的子元件。

<Routes>
  <Route path="/home" element={<Home />} />
  <Route path="/about" element={<About />} />
</Routes>

相关问题