尝试使用 React Router v6 时出现错误:尝试导入错误:“Action”未从“history”中导出
2020-07-24
6127
我使用
npx create-react-app app-name
创建了一个新的 React 应用程序。
然后我将目录更改为该应用程序文件夹,然后运行以下命令。
npm install react-router@next react-router-dom@next
然后我运行我的应用程序,它运行良好。然后我更改了默认代码并使用了 Routes、Route 等。这是 APP 代码
import React from 'react';
import {BrowserRouter as Router, Routes, Route} from "react-router-dom"
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
</Routes>
</Router>
);
}
function Home()
{
return <div>
<h1>Home</h1>
</div>
}
export default App;
我收到错误:
Attempted import error: 'Action' is not exported from 'history'.
错误路径为:
./node_modules/react-router/index.js
知道它出了什么问题吗?
3个回答
您需要安装另一个名为
history
的软件包。请执行
npm i history
。
更多信息请见 此处
kcsujeet
2020-07-30
我的代码没有任何问题。也许问题出在最新版本的 React-Router 上。所以,我刚刚更改了 React-Router 的版本。
从
"react-router": "^6.0.0-beta.0"
"react-router-dom": "^6.0.0-beta.0"
到
"react-router": "6.0.0-alpha.2",
"react-router-dom": "6.0.0-alpha.2"
它运行得非常好,没有任何问题。我在问题中提到的相同代码运行良好,没有任何变化。:)
Muhammad Umar Gulzar
2020-07-24
对于其他任何发现此问题的人,只要您不依赖
matchPath
导出(它似乎未在
alpha.2
版本中导出),@Muhammad 解决方案就有效。
但实际解决方案是确保您已安装
history@^5.0.0
。一旦我这样做,“缺少
Action
导出”错误就消失了。所以 @kcsujeet 是对的,但只需确保您对
history
的依赖至少为 5.0.0。
Josh
2020-09-20