React Router v4如何仅在路径名更改时<link />替换

时间:2017-06-23 23:42:56

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

我正在尝试使用react-router v4 make menu navigation

示例代码

<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正常工作)

Ex: BrowserRouter
Ex: HashRouter

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

1 个答案:

答案 0 :(得分:0)

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

点击此处了解详情:https://reacttraining.com/react-router/web/api/Link/replace-bool

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