我想在路由“LoginForm”中呈现/login组件。但是,当我单击标题中的日志链接时,URL端点不会改变,Products组件将被呈现。

我做错了什么?
代码片段如下所示: App.js
import React from "react";
import { Container } from "react-bootstrap";
import Header from "./components/Header";
import Footer from "./components/Footer";
import Products from "./components/Products";
import { Route, Switch } from "react-router-dom";
import SingleProductView from "./components/SingleProductView";
import Cart from "./components/Cart";
import LoginForm from "./components/LoginForm";
const App = () => {
return (
<>
<Header />
<main className="py-3">
<Container>
<Switch>
<Route path="/login" component={LoginForm} />
<Route path="/product/:id" component={SingleProductView} />
<Route path="/cart/:id?" component={Cart} />
<Route path="/" component={Products} exact />
</Switch>
</Container>
</main>
<Footer />
</>
);
};
export default App;Header.js
import React from "react";
import { LinkContainer } from "react-router-bootstrap";
import { Navbar, Nav, Container } from "react-bootstrap";
const Header = () => {
return (
<header>
<Navbar bg="dark" variant="dark" expand="lg" collapseOnSelect>
<Container>
<LinkContainer to="/">
<Navbar.Brand>ProShop</Navbar.Brand>
</LinkContainer>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<LinkContainer to="/cart">
<Nav.Link>
<i className="fas fa-shopping-cart"></i>cart
</Nav.Link>
</LinkContainer>
<LinkContainer to="/login">
<Nav.Link>
<i className="fa fa-user"></i>Log In
</Nav.Link>
</LinkContainer>
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
</header>
);
};
export default Header;发布于 2021-03-06 14:16:23
您必须从BrowserRouter中导入react-router-dom,并使用BrowserRouter组件包装所有路由。
发布于 2021-03-06 16:26:49
只需在App.js import {BrowserRouter, Route, Switch } from "react-router-dom";中更新此导入语句
并在App.js中更新这段代码
<BrowserRouter>
<Switch>
<Route path="/login" component={LoginForm} />
<Route path="/product/:id" component=. {SingleProductView} />
<Route path="/cart/:id?" component={Cart} />
<Route path="/" component={Products} exact />
</Switch>
</BrowserRouter>https://stackoverflow.com/questions/66506595
复制相似问题