错误信息

Matched leaf route at location "/" does not have an element. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.
高版本中Switch已经被换成了Routes,点击链接路径变化正常但页面不显示,并在浏览器控制台输出以上警告。

错误代码

import React from 'react-dom';
import ReactDOM from 'react-dom';
import './index.css';
import reportWebVitals from './reportWebVitals';
import { HashRouter as Router, Routes, Route, Link } from 'react-router-dom'

ReactDOM.render((
  <Router >
    <Link to="home/">首页</Link>
    <Link to="about/">关于</Link>
    <div>
      <Routes>
        <Route path="/" exact={false} component={<div>home</div>} />
        <Route path="/home" exact={false} component={<div>home</div>} />
        <Route path="/about" exact={false} component={<div>about</div>} />
      </Routes>
    </div>
  </Router>
), document.getElementById('root')
);

reportWebVitals();

正确代码

component改成element即可:

import React from 'react-dom';
import ReactDOM from 'react-dom';
import './index.css';
import reportWebVitals from './reportWebVitals';
import { HashRouter as Router, Routes, Route, Link } from 'react-router-dom'

ReactDOM.render((
  <Router >
    <Link to="home/">首页</Link>
    <Link to="about/">关于</Link>
    <div>
      <Routes>
        <Route path="/" exact={false} element={<div>home</div>} />
        <Route path="/home" exact={false} element={<div>home</div>} />
        <Route path="/about" exact={false} element={<div>about</div>} />
      </Routes>
    </div>
  </Router>
), document.getElementById('root')
);

reportWebVitals();

配置,React.js版本等

"dependencies": {"react": "^17.0.2",
  "react-app-polyfill": "^2.0.0",
  "react-dev-utils": "^11.0.3",
  "react-dom": "^17.0.2",
  "react-refresh": "^0.8.3",
  "react-router-config": "^5.1.1",
  "react-router-dom": "^6.0.2",
  "webpack": "4.44.2",
  "webpack-dev-server": "3.11.1",
  "webpack-manifest-plugin": "2.2.0",
  "workbox-webpack-plugin": "5.1.4"
}

文末有好东西

🎁好东西

GitHub 加速计划 / eleme / element
15
3
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:4 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐