Routes 什么';这个子程序怎么了?
我正在学习“react router dome”,这是我使用它的博客项目 主路由页面-app.jsRoutes 什么';这个子程序怎么了?,routes,react-router-dom,router,Routes,React Router Dom,Router,我正在学习“react router dome”,这是我使用它的博客项目 主路由页面-app.js <Route exact path="/" component={LandingPage} /> <Route exact path="/post/personal" component={PersonalPage} /> <Route exact path="
<Route exact path="/" component={LandingPage} />
<Route exact path="/post/personal" component={PersonalPage} />
<Route exact path="/post/something" component={SomethingPage} />
<Route exact path="/post/javascript" component={JavascriptPage} />
<Route exact path="/post/react" component={ReactPage} />
<Route
render={() => (
<div
style={{
padding: "20px",
width: "280px",
margin: "0 auto",
fontWeight: "bold",
}}
>
Worng Page found
</div>
)}
/>
<Route exact path ="/post/personal/:postId
(
找到工作页
)}
/>
/post/personal-PersonalPage
<Link className="more" to={`/post/personal/${value._id}`}>
Click>
</Link>
<Route
exact
path={`/post/personal/:postId`}
component={PersonalDetailPage}
/>
点击
我的想法是,如果我按下“点击链接”按钮,我会进入路线[PersonalDetailPage]。
但是我的代码不起作用,并且PErsonalDetailPage没有显示
屏幕仅显示“找到错误页面”
但是如果你用这种方式编写代码,它就可以正常工作
app.js
<Route exact path="/" component={LandingPage} />
<Route exact path="/post/personal" component={PersonalPage} />
<Route exact path="/post/something" component={SomethingPage} />
<Route exact path="/post/javascript" component={JavascriptPage} />
<Route exact path="/post/react" component={ReactPage} />
<Route
render={() => (
<div
style={{
padding: "20px",
width: "280px",
margin: "0 auto",
fontWeight: "bold",
}}
>
Worng Page found
</div>
)}
/>
<Route exact path ="/post/personal/:postId
路由的问题在于您在所有顶级路由上定义了精确的属性。现在,当您这样做时,嵌套路由无法呈现,因为父路由与整个路径不匹配
例如,如果您访问/post/personal/5
,则路径/post/personal
呈现PersonalPage
组件与它完全不匹配,并且由于PersonalPage不会重新呈现,因此它的任何子例程都不匹配
解决方法是使用组件,而不是使用精确的属性,并按顺序定义路由,以便前缀路径位于末尾
<Switch>
<Route path="/post/personal" component={PersonalPage} />
<Route path="/post/something" component={SomethingPage} />
<Route path="/post/javascript" component={JavascriptPage} />
<Route path="/post/react" component={ReactPage} />
<Route
render={() => (
<div
style={{
padding: "20px",
width: "280px",
margin: "0 auto",
fontWeight: "bold",
}}
>
Worng Page found
</div>
)}
/>
<Route path="/" component={LandingPage} />
</Switch>
(
找到工作页
)}
/>
p.S.交换机组件在其子系统中呈现第一条匹配的路由这很简单。谢谢你的解释。