开发者问题收集

‘react-router’ 不包含名为‘browserHistory’的导出

2018-06-07
3296

因此,我尝试在 React 中使用 history ,但它似乎被移动了很多次。我发现了这一点:

https://github.com/ReactTraining/react-router/blob/ab4552d2ea0ec5c0cf3c534bca654a1af3ea0dec/docs/guides/NavigatingOutsideOfComponents.md

但它只是说 'react-router' 不包含名为 'browserHistory' 的导出。 我该如何解决?在哪里可以找到历史记录?我找到的所有答案都是大约 1.5 年前的。

3个回答

您正在寻找 BrowserRouter

import { BrowserRouter } from 'react-router';

browserHistory 存在于 v2/v3 中,但在 v4 中被重写为 BrowserRouter 。 这里有一份 迁移指南 ,应该可以帮到您。

Henrik Andersson
2018-06-07

history Api 已被移至单独的 history 包

为了创建 browserHistory ,您需要安装 history,例如

npm install -S history

并写入

import createHistory from "history/createBrowserHistory"

const browserHistory = createHistory()
export { browserHistory };

然而在 react-router-v4 中,与 RouterbrowserHistory 等同的是 BrowserRouter

Shubham Khatri
2018-06-07

显然,您不再拥有 browserHistory 。因此,您可以改为执行此操作,

<Route>
 <Header />
</Route>

然后您可以执行

function Header(props) {
 // props.history and props.location are available now inside this component
}

然后您可以执行 props.history.push 或任何其他操作(如果这是您想要执行的操作)。

您拥有的链接适用于旧版本的 react-router ,因此请查看 react-router 4

illiteratewriter
2018-06-07