reactjs - React - 链接并不总是按预期工作
问题描述
我正在构建一个在前端使用 React 的 Pinterest 克隆。
主页是/pins
,它只是所有引脚的索引。在 Pin Index Item 组件中,当用户单击 pin 时,我正在使用 Link 转到正确的路径。
这是 PinIndexItem.jsx 中的链接
<Link to={`users/${pin.author_id}/boards/${pin.board_id}/pins/${pin.id}`}>
这是我的 App.jsx 中的路线
<Switch>
<ProtectedRoute exact path='/users/:userId/boards/:boardId/pins/:pinId' component={PinShowContainer} />
</Switch>
当我从别针路线出发时,这是
#/pins/
它工作得很好
但是,我在用户的针板上,即
users/${pin.author_id}/boards/${pin.board_id}/
而不是去
users/${pin.author_id}/boards/${pin.board_id}/pins/${pin.id}
,它添加到路径中:
users/${pin.author_id}/boards/
用户/${pin.author_id}/boards/${pin.board_id}/pins/${pin.id}`
我很困惑为什么在第二种情况下它的工作方式不同。谢谢你。
我应该history.push
在这两种情况下都使用吗?
解决方案
/
在链接元素上,如果您省略href
属性的首字母(链接的目标 URL),则href
属性值将附加到当前 URL。这是一个相对于当前页面的链接(href
值将附加到当前页面的完整 URL)。
例如,如果当前页面 URL 是/here
并且您设置了一个链接href="there"
,那么单击该链接将让您访问/here/there
。
如果要设置指向绝对路径的链接,则需要/
在href
属性上添加首字母。在我之前的示例中,如果当前页面 URL 是/here
并且您使用 设置了一个链接href="/there"
,那么单击该链接将让您访问/there
.
您应该能够通过切换到绝对路径或使用不同的相对路径来解决您的问题。
有关完整文档,请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a。
推荐阅读
- java - 如何基于嵌套对象的多个比较进行流排序?
- php - for循环中的永久5年周期
- laravel - 如何用axios构造路由模型绑定url?
- azure-functions - 使用应用服务计划通过 Azure 函数应用的 FTP 服务器连接问题
- python - 汉明距离的三元函数,其中“2”是通配符
- pine-script - 需要条形解析器
- java - 如何在 Recycler View 中获取 TextViews 并将其发送到另一个活动并将其添加到 arraylist 值
- git - 在哪里可以找到 git 发行说明?
- amazon-web-services - aws 安全组:允许 ec2 实例访问自己的端口
- vba - powerpoint 2016 中的 VBA 宏在正常模式下运行而不是幻灯片放映模式