我希望在用户复制后显示一个辅助菜单,该选项是主菜单的一部分,到目前为止,在循环之后,辅助控件没有显示。
这是我的主菜:
import React from "react";
import { BrowserRouter, Route, Link, Switch, Redirect } from "react-router-dom";
import Products from "../components/Products/Products";
import Welcome from "../components/Products/Welcome";
import VerQuotes from "../components/Quotes/VerQuotes";
const MenuApps = () => {
return (
<div>
<main>
<BrowserRouter>
<MainHeader />
<Switch>
<Route path="/" exact>
<Redirect to="/welcome" />
</Route>
<Route path="/welcome">
<Welcome />
</Route>
{/* exact es un parametro que permite distinguir que recurso mostrar */ }
<Route path="/products" exact>
<Products />
</Route>
<Route path="/products/:productId">
<ProductDetail />
</Route>
<Route path="/verquotes">
<VerQuotes />
</Route>
</Switch>
</BrowserRouter>
</main>
</div>
);
};
export default MenuApps;这是第二个菜单:
import { Route, Switch, BrowserRouter, Redirect } from "react-router-dom";
import AllQuotes from "./AllQuotes";
import NewQuote from "./NewQuote";
import QuoteDetail from "./QuoteDetail";
function VerQuotes() {
return (
<BrowserRouter>
<Switch>
<Route path="/" exact>
<Redirect to="/quotes" />
</Route>
{/* si no pongo exact no se renderiza la segunda opcion */}
<Route path="/quotes" exact>
<AllQuotes />
</Route>
<Route path="/quotes/:quoteId">
<QuoteDetail />
</Route>
<Route path="/new-quote">
<NewQuote />
</Route>
</Switch>
</BrowserRouter>
);
};
export default VerQuotes;我的问题是:我缺少什么来显示辅助菜单?
非常感谢你的评论
发布于 2021-12-15 16:18:52
整个应用程序只需要一个路由器,所以BrowserRouter在VerQuotes中是不必要的。react-router-dom v5也不使用相对链接/路径,因此VerQuotes中的所有嵌套路由都需要构建在现有的"/verquotes"路径上。
另外,请记住,在Switch组件中,路由路径的特殊性和顺序非常重要!将路由从更特定的路径排序到较不特定的路径,这样更具体的路径就有机会首先被匹配和呈现。
import { Route, Switch, Redirect, useRouteMatch } from "react-router-dom";
import AllQuotes from "./AllQuotes";
import NewQuote from "./NewQuote";
import QuoteDetail from "./QuoteDetail";
function VerQuotes() {
const { path, url } = useRouteMatch();
return (
<Switch>
<Route path={`${path}/quotes/:quoteId`}>
<QuoteDetail />
</Route>
{/* si no pongo exact no se renderiza la segunda opcion */}
<Route path={`${path}/quotes`}>
<AllQuotes />
</Route>
<Route path={`${path}/new-quote`}>
<NewQuote />
</Route>
<Redirect from={path} to={`${path}/quotes`} />
</Switch>
);
};https://stackoverflow.com/questions/70366607
复制相似问题