reactjs - 路由内的路由 - 嵌套路由 - react.js
问题描述
我一直在 github 上寻找我的问题的答案,但对我没有任何作用..
我的问题是,当我在 Reservation 组件中使用 Link 时,它会更改路径,但不会更改可见组件并且页面会变为空。摘要组件现在应该只用一些文本渲染 h1。我必须做什么才能使这些组件正常工作?
顺便说一句,我使用react v16.13.1和react-router-dom v4.3.1
/* 应用组件 */
const App = () => (
<Router>
<div className="app">
<Navigation />
<hr />
<Switch>
<Route exact path="/" component={LandingPage} />
<Route exact path="/sign-in" component={SignInPage} />
<Route exact path="/pw-forget" component={PasswordForgetPage} />
<Route exact path="/reservation" component={Reservation} />
<Route exact path="/account" component={AccountPage} />
<Route exact path="/reservations" component={Reservations} />
</Switch>
</div>
</Router>
);
/* 预留组件 */
class Reservation extends React.Component {
render() {
return (
<Link to="/reservation/summary">Podsumowanie</Link>
<Switch>
<Route exact path="/reservation/summary" component={Summary} />
</Switch>
</div>
);
}
}
解决方案
问题出在您的 App 组件中的路由上,您只有一个准确的路由到/reservation
.
所以你可能想要改变它
<Route exact path="/" component={LandingPage} />
<Route exact path="/sign-in" component={SignInPage} />
<Route exact path="/pw-forget" component={PasswordForgetPage} />
<Route exact path="/account" component={AccountPage} />
<Route exact path="/reservations" component={Reservations} />
<Route path="/reservation" component={Reservation} />
关键是exact
取下道具,因此它将匹配以下任何路径/reservation
推荐阅读
- xamarin - Xamarin Forms 辅助功能的字体大小
- reactjs - 为什么当我在 React 构建编译中使用 JQuery 库时它们不起作用
- bison - 我想修复 flex bison 错误“无效令牌”
- c# - 反射:如果 PropertyInfo 实现了 ICollection
- excel - 通过单元格引用在另一张表中循环输入值,然后复制公式值并使用 vba 将其粘贴到另一张表中
- python - 数据框中包含特定单词的行数
- python - Python 请求只提取一半的意图标签
- c# - 如何在 C# 中使用 postgres 将 json 字符串转换为 jsonb 类型
- apache-kafka - 为什么要为 Kafka 使用 AVRO
- r - 如何使用 DPLYR 找到 3 个组之间共享最多的物种