尝试导入错误:'createLocation'未从具有冲突的历史记录和 React-router-dom 版本的'history'导出



我试图在新的开发服务器中设置一个现有的项目。然而,我得到以下错误:

。/node_modules react-router-dom/esm/react-router-dom.js尝试导入错误:'createLocation'未从'history'导出。

在寻找解决方案时,我发现可能是因为历史和react-router-dom的版本存在冲突。看起来react-router-dom 5.2.0支持历史版本4.9.0,而我使用的是历史版本5.0.0。解决方案应该是将历史版本降级到4.9.0,但在现有项目中,使用相同的版本,此错误不会出现。

我用npm list -depth=0检查了库的版本

├── @ant-design/compatible@1.0.8
├── @ant-design/icons@4.2.2
├── @babel/preset-env@7.11.5
├── @babel/preset-react@7.10.4
├── @craco/craco@5.7.0
├── @types/jest@26.0.14
├── @types/jwt-decode@2.2.1
├── @types/node@14.11.1
├── @types/react-dom@16.9.8
├── @types/react-highlight-words@0.16.1
├── @types/react-redux@7.1.9
├── @types/react-resizable@1.7.2
├── @types/react-router-dom@5.1.5
├── @types/react-table@7.0.23
├── @types/react@16.9.49
├── @types/redux-logger@3.0.8
├── @typescript-eslint/eslint-plugin@3.10.1
├── @typescript-eslint/parser@3.10.1
├── antd@4.10.2
├── axios@0.19.2
├── bootstrap@4.5.2
├── craco-less@1.17.0
├── env-cmd@10.1.0
├── eslint-plugin-react-hooks@4.1.2
├── eslint-plugin-react@7.20.6
├── eslint@6.8.0
├── history@5.0.0
├── js-file-download@0.4.12
├── jwt-decode@3.1.2
├── lodash@4.17.20
├── mocker-data-generator@2.9.0
├── moment@2.28.0
├── node-sass@4.14.1
├── password-validator@5.1.0
├── prettier@1.19.1
├── query-string@6.13.2
├── react-dom@16.13.1
├── react-highlight-words@0.16.0
├── react-redux@7.2.1
├── react-resizable@1.11.0
├── react-router-dom@5.2.0
├── react-scripts@3.4.3
├── react-test-renderer@16.13.1
├── react@16.13.1
├── redux-devtools-extension@2.13.8
├── redux-logger@3.0.6
├── redux-thunk@2.3.0
├── redux@4.0.5
├── resize-observer-polyfill@1.5.1
├── rsuite@4.8.2
├── typescript@3.9.7
├── webpack-dev-middleware@3.7.2
└── webpack-hot-middleware@2.25.0

理想情况下,我想使用与现有项目相同的版本,但是我不明白这个项目是如何与历史和react-router-dom的冲突版本一起工作的。

历史5.x。x不导出createLocation。因此,如果您在根package.json中有history版本并试图从项目中导入,则它将永远无法工作。

相关内容

  • 没有找到相关文章

最新更新