<Link> 替换无效
<Link> Replace not working
我正在用 React 开发一个完整的网站。我正在使用 <HashRouter>
来呈现我的应用程序。在整个站点中,您会看到一个导航菜单,该菜单使用 <Link>
将您带到不同的页面。
我网站中的一个页面是一家商店,URL 是 /Shop
。
当您点击商店中的产品时,它会使用 <Link>
将产品名称附加到当前 URL - /Shop/Product
- 的末尾,并呈现相应的信息。
如果您正在查看产品并尝试导航到其他页面,它只会替换最后一个条目,即使 replace={true}
也是如此。因此,如果我当前在 /Shop/Product
并尝试导航至 /Contact
,则 URL 会更改为 /Shop/Contact
。
我是不是误解了 replace
的工作原理?还是我做错了什么?任何帮助将不胜感激。
如果你使用这样的东西:
<Link to="Contact" />
它只会改变 URL 的最后一段,因为它是一个相对路径,所以如果你在 /Shop/Something
它会变成 /Shop/Contact
您可能想改用绝对路径:
<Link to="/Contact" />
--
replace vs push 路由是另一回事。如果您将路线历史视为数组:
[
'/Shop/Item',
'/Shop/Item2'
]
push
将追加到列表中,replace
将替换最后一个索引
我正在用 React 开发一个完整的网站。我正在使用 <HashRouter>
来呈现我的应用程序。在整个站点中,您会看到一个导航菜单,该菜单使用 <Link>
将您带到不同的页面。
我网站中的一个页面是一家商店,URL 是 /Shop
。
当您点击商店中的产品时,它会使用 <Link>
将产品名称附加到当前 URL - /Shop/Product
- 的末尾,并呈现相应的信息。
如果您正在查看产品并尝试导航到其他页面,它只会替换最后一个条目,即使 replace={true}
也是如此。因此,如果我当前在 /Shop/Product
并尝试导航至 /Contact
,则 URL 会更改为 /Shop/Contact
。
我是不是误解了 replace
的工作原理?还是我做错了什么?任何帮助将不胜感激。
如果你使用这样的东西:
<Link to="Contact" />
它只会改变 URL 的最后一段,因为它是一个相对路径,所以如果你在 /Shop/Something
它会变成 /Shop/Contact
您可能想改用绝对路径:
<Link to="/Contact" />
--
replace vs push 路由是另一回事。如果您将路线历史视为数组:
[
'/Shop/Item',
'/Shop/Item2'
]
push
将追加到列表中,replace
将替换最后一个索引