<link />替换不起作用

时间:2017-10-03 21:54:50

标签: reactjs react-router react-router-dom

我在React的一个完整网站上工作。我使用<HashRouter>来渲染我的应用。在整个网站中,您将看到一个导航菜单,该菜单使用<Link>将您带到不同的页面。

我网站上的其中一个网页是商店,其网址为/Shop

当您点击商店中的商品时,它会使用<Link>将商品名称附加到当前网址的末尾 - /Shop/Product - 并呈现相应的信息。

如果您正在查看某个产品并尝试导航到其他页面,则只会替换最后一个条目,即使使用replace={true} 也是如此。因此,如果我目前位于/Shop/Product并尝试导航至/Contact,则网址将更改为/Shop/Contact

我是否误解了replace应该如何运作?或者我做错了什么?任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

如果你使用这样的东西:

<Link to="Contact" />

它只会更改网址的最后一段,因为它是一个相对路径,所以如果你在/Shop/Something它会更改为/Shop/Contact

您可能想要使用绝对路径:

<Link to="/Contact" />

-

替换vs推送路线是另一回事。如果您将路线历史视为数组:

[
  '/Shop/Item',
  '/Shop/Item2'
]

push将附加到列表中,replace将替换最后一个索引