javascript - 路由不会因不同的参数 ID 而改变,即使密钥不同
问题描述
我有一个反应路由器应用程序,到目前为止只有两条路由。
<Router history={history}>
<div>
<Switch>
<Route exact path="/" component={Homepage} />
<Route path="/pdfviewer/:index" component={PdfViewer} />
</Switch>
</div>
</Router>
在我的侧边栏中,我将所有组件映射为PdfViewer
这样
const files = data.map((file, i) =>{
return(
<FileItem file={file} key={`${i}`} name={`file number ${i+1}`} index={i+1} />
)
})
在每个内部FileItem
我都有一个 NavLink 来呈现给具有给定索引的组件。
<ListItem button component={Link} to={{pathname:`/pdfviewer/${index}`, state: {fileObject: fileObject, fileLineObjects: fileLineObjects}}}>
<ListItemIcon>
<AssignmentIcon />
</ListItemIcon>
<ListItemText primary={name} />
</ListItem>
每当路线更改时,都不会安装新组件,但是当我重新加载浏览器时,站点会更新。当我为每个组件提供新密钥时,为什么会发生这种情况?
解决方案
推荐阅读
- javascript - JSON:使用 Pexels API 密钥
- azure-pipelines - 使用 azure 管道判断模板中是否存在变量
- mysql - mysql 6.1.11 客户端到 Mysql 8 连接
- excel - 根据单元格选择选择适当的公式
- git - Git 使用 HTTPS 推送凭据和权限
- python - 如何从我的 ax.pcolormesh() 密度图中删除矩形白色框?
- c++ - 为什么在类与继承的情况下输出与所需的输出不同?
- android - 是否有记录在案的 Android 版本接收安全更新的生命周期?
- python - 如何让 VS Code 编辑器知道在 python 中属于导入的包?
- xml - 使用 XSLT 复制前 N 个节点及其子节点