2

我正在尝试使用 react-router v4 制作菜单导航

示例代码

<BrowserRouter>
  <Link to="/">Home</Link>
  <Link to="/about">About</Link>
</BrowserRouter>
// ...
<Switch>
  <Route exact path="/" component={Home} />
  <Route exact path="/about" component={About} />    
  <Route component={NotFound} />
</Switch>

问题

这段代码工作正常,但每次我点击一个链接。BrowserHistory 总是会推送新的位置,这会使浏览器无法正确后退/前进。

前任。当我点击 Home 5 次时,它应该只是按下 1 次并替换 4 次

仅在使用 BrowserRouter 时出现问题(HashRouter 正常工作)

例如:BrowserRouter
例如:HashRouter

我只想在路径不变时进行链接替换。
有可能吗?有简单的方法吗?

4

1 回答 1

2

如果您希望链接替换历史堆栈中的当前条目,您应该使用组件replace上的属性<Link />

检查此以获取更多信息: https ://reacttraining.com/react-router/web/api/Link/replace-bool

在 github 上查看此讨论:https ://github.com/ReactTraining/react-router/issues/3776

于 2017-06-24T14:28:27.813 回答