reactjs - Reactjs 静态和动态路由
问题描述
我正在尝试在我的 React 应用程序中同时使用静态路由和动态路由。我有一个 JSON 文件,其中包含应用程序具有的所有动态路由,如下所示:
[
{
"Text": "Home",
"Link": "/"
},
{
"Text": "Users",
"Link": "/Users"
},
{
"Text": "Posts",
"Link": "/Posts"
}
]
这是我的应用程序(我删除了一些不需要的代码)
import React from 'react';
function App() {
return (
<div className="Grid-Container">
<Router>
<Switch>
<div>
<!-- Static Route to the Settings section -->
<Route
path='/settings/home'
component={Settings}
key={'Settings'}/>
<!-- Dynamic Route which displays all Entries for the chosen Page -->
<Route
path={`/${page.Text}`}
component={objectPage}
key={`${page.Text}-List`}
exact/>
<!-- Dynamic Route which displays one Entry for the chosen Page -->
<Route
path={`/:object/:id`}
component={DetailPage}
key={`Detail-Route`}
exact/>
</div>
</Switch>
</Router>
</div>
);
}
export default App;
动态路线按预期工作,但一旦我尝试进入设置页面,我就会看到我不想要的详细信息页面的内容。
解决方案
使用精确的道具
<Route
path='/settings'
component={Settings}
key={'Settings'}
exact
/>
推荐阅读
- php - PHP 中的 ImageMagick Watermark - 如何使用原始图像大小的 % 而不是水印图像大小的 % 来缩放水印?
- flutter - 如何将异步函数中的列表加载到小部件中?
- npm - npm 错误!尝试获取 http://registry.npmjs.org/accepts 时响应正文无效:sha 完整性验证失败
- mysql - (1054,“'字段列表'中的未知列'leçon_lesson.subject_id'”)
- c - 将现有内存(数据段)映射到另一个内存段
- c++ - ffmpeg 仅发布播放列表,但不发布 HLS 片段
- python - !head 在 python 和 NumPy 中做了什么?
- c# - 当我将应用程序发布到 Azure 时,为什么我的控制器端点会中断
- android - AndroidX 多个 Preferences 实例
- mongodb - 如何使用 mongodb 解决打字稿问题