【发布时间】:2020-04-13 15:54:46
【问题描述】:
我修改了docs 中的 React Router 嵌套路由中给出的示例,以在基本 url 中设置嵌套路由,例如 this。
我想要像 /Home1 和 /Home2 这样的嵌套路由直接在根 url 下。
export default function NestingExample() {
return (
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/topics">Topics</Link>
</li>
</ul>
<hr />
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/topics">
<Topics />
</Route>
</Switch>
</div>
</Router>
);
}
function Home() {
let { path, url } = useRouteMatch();
console.log({url, path});
return (
<div>
<h2>Homes</h2>
<ul>
<li>
<Link to="/home1">Home 1</Link>
{/* also tried <Link to={`${url}/home1`}>Home 1</Link> */}
</li>
<li>
<Link to="/home2">Home 2</Link>
</li>
</ul>
<Switch>
<Route exact path={path}>
<h3>Please select a home.</h3>
</Route>
<Route path={`${path}/home1`}>
<Home1 />
</Route>
<Route path={`${path}/home2`}>
<Home2 />
</Route>
</Switch>
</div>
);
}
function Home1() {
return (
<div>
<h3>Home1 Content</h3>
</div>
);
}
function Home2() {
return (
<div>
<h3>Home2 Content</h3>
</div>
);
}
浏览器中未显示错误,但未显示 Home1 页面。 不可以直接在root下设置嵌套路由吗?
【问题讨论】:
标签: reactjs react-router react-router-dom