我使用创建了一个新的react应用程序
npx create-react-app app-name
然后我将目录更改为该应用程序文件夹,然后运行以下命令。
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
任何想法有什么问题吗?
答案 0 :(得分:5)
我的代码没有错。也许问题出在最新版本的React-Router上。因此,我只是更改了React-Router的版本。
FROM
<div class='row'>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
<div class='box'>
<div class='box__item'> </div>
</div>
</div>
要
for FTID in Training_Dict:
Training_Dict[FTID]['TransDate'] = Training_Dict[FTID]['TransDate'].dt.strftime("%d-%m-%y")
它运行正常,没有问题。我在问题中提到的相同代码可以正常工作,而无需进行任何更改。 :)
答案 1 :(得分:4)
您需要安装另一个名为history
的软件包。做npm i history
。
更多信息here
答案 2 :(得分:3)
对于其他发现此问题的人,只要您不依赖matchPath
导出(在alpha.2
版本中似乎没有导出),@ Muhammad解决方案就可以使用。
但是实际的解决方案是确保已安装history@^5.0.0
。一旦这样做,“ Action
导出丢失”错误就消失了。因此,@ kcsujeet是正确的,但只需确保您对history
的依赖性至少为5.0.0。
答案 3 :(得分:1)
正如其他答案所述,这里的解决方案是安装 history@^5.0.0
。但是,如果您使用的是 TypeScript,您可能仍会遇到 'Action' is not exported from 'history'
错误。您需要从 @types/react-router
中删除 @types/react-router-dom
/devDependencies
。
在 react-router 5.x 中,类型未捆绑,因此您需要安装 @types/react-router-dom
。在 6.0 预发行版中,类型已经捆绑,因此您无需显式安装它们。如果您保留 5.x 类型,它们就会过时,并且还会依赖于同样过时的 @types/history
4.x。
因此,如果您要在 TypeScript 项目中升级到 react-router 6.0,请删除不必要的类型。
答案 4 :(得分:0)
代替导入Routes组件,而是导入Switch组件... 软件包中没有路由组件。