如何修复错误:尝试导入错误:“路由”未从“react-router-dom”导出

Iwa*_*rse 12 reactjs react-router

-- 更新:当我停止开发服务器,退出 VSCode 并再次重新启动它时,它开始工作。不确定是什么原因造成的。

忙于学习 React 并遇到了这个错误。我已经尝试了其他几个 SO 帖子,但似乎无法解决我的问题。

我遵循指南只使用 react-router-dom 并从 react-router-dom 导入 BrowserRouter 和 Route。但我收到一个错误:

./src/App.js
Attempted import error: 'Route' is not exported from 'react-router-dom'.
Run Code Online (Sandbox Code Playgroud)

不确定我在这里做错了什么?

这是我的 App.js

import React, { Component } from 'react';
import Navbar from './components/Navbar'
import { BrowserRouter, Route } from 'react-router-dom'
import Home from './components/Home'

class App extends Component {
  render() {
    return (
      <BrowserRouter>
      <div className="App">
        <Navbar />
        <Route path='/' component={Home} />
      </div>
      </BrowserRouter>
    );
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

这是我的 package.json:

  "name": "poketimes",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.8.5",
    "react-dom": "^16.8.5",
    "react-router-dom": "^5.0.0",
    "react-scripts": "2.1.8"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}
Run Code Online (Sandbox Code Playgroud)

根据我一直在阅读的内容,其他帖子仍然单独使用 react-router,但如果我正确理解文档,我不应该在这个版本中这样做?另外,我正在学习一个完全正确执行此操作的教程,并且它似乎有效。

任何建议将不胜感激,谢谢!

小智 6

问题在我身上得到解决

npm uninstall react-router
Run Code Online (Sandbox Code Playgroud)

npm uninstall react-router-dom
Run Code Online (Sandbox Code Playgroud)

然后

npm install react-router react-router-dom
Run Code Online (Sandbox Code Playgroud)

使用5.0.0版本


Mos*_*imi 5

关闭服务器并重新启动它。它工作正常。

npm start 或者 yarn start


小智 5

这个问题是由于react-router-dom的版本而发生的。尝试将react-router-dom更新到版本6。

只需运行命令:

npm install react-router-dom@6.0.0-beta.0
Run Code Online (Sandbox Code Playgroud)