react-router-dom 中的路由器在控制台中抛出错误,没有任何消息
Router in react-router-dom throws an error in the console with no message
我目前正在构建一个应用程序,并且 运行正在处理来自 Route 组件的这个奇怪的 react-router-dom 错误。
我不确定为什么当我在 webpack 中启用“devtool: 'inline-source-map'”时会收到生产错误消息,但基本上我不确定是什么引发了错误。这是我当前的前端设置
import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import HomePage from './components/Homepage';
render(
<Router>
<div> Hello from react </div>
<Route path="/" element={<HomePage />} />
</Router>,
document.getElementById('app-portal')
);
并通过注释掉 <Route path="/" element={<HomePage />} />
该应用程序可以正常工作,但我当然需要 Route 才能为该应用程序工作...
这是我的 package.json 依赖项。
"dependencies": {
"axios": "^0.26.1",
"express": "^4.17.3",
"html-webpack-plugin": "^5.5.0",
"nodemon": "^2.0.15",
"path": "^0.12.7",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0"
},
"devDependencies": {
"@babel/cli": "^7.7.4",
"@babel/core": "^7.12.10",
"@babel/plugin-transform-runtime": "^7.8.3",
"@babel/preset-env": "^7.16.11",
"@babel/preset-react": "^7.16.7",
"@babel/preset-stage-2": "^7.8.3",
"@babel/register": "^7.7.4",
"assert": "^2.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^8.2.3",
"babel-loader": "^8.2.5",
"babel-plugin-styled-components": "^1.12.0",
"css-loader": "^6.7.1",
"eslint": "^4.19.1",
"eslint-plugin-react": "^7.8.2",
"file-loader": "^6.2.0",
"morgan": "^1.10.0",
"style-loader": "^3.3.1",
"webpack": "^5.72.0",
"webpack-cli": "^4.9.2"
},
有人 运行 遇到过类似的问题吗?如果有,是如何解决的?
正如评论中所指出的,该应用是生产版本,因此删除了调试信息。不过在错误日志中,这些是链接,因此您实际上可以单击它并查看 一些 形式的代码,看看问题出在哪里,代码抛出错误。
根据您的代码,我假设错误是您没有将 Route
组件渲染到 Routes
组件中。 Routes
组件是处理路由路径匹配的组件,在 react-router-dom@6
.
中是必需的
import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import HomePage from './components/Homepage';
render(
<Router>
<div>Hello from react</div>
<Routes>
<Route path="/" element={<HomePage />} />
</Routes>
</Router>,
document.getElementById('app-portal')
);
我目前正在构建一个应用程序,并且 运行正在处理来自 Route 组件的这个奇怪的 react-router-dom 错误。
我不确定为什么当我在 webpack 中启用“devtool: 'inline-source-map'”时会收到生产错误消息,但基本上我不确定是什么引发了错误。这是我当前的前端设置
import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import HomePage from './components/Homepage';
render(
<Router>
<div> Hello from react </div>
<Route path="/" element={<HomePage />} />
</Router>,
document.getElementById('app-portal')
);
并通过注释掉 <Route path="/" element={<HomePage />} />
该应用程序可以正常工作,但我当然需要 Route 才能为该应用程序工作...
这是我的 package.json 依赖项。
"dependencies": {
"axios": "^0.26.1",
"express": "^4.17.3",
"html-webpack-plugin": "^5.5.0",
"nodemon": "^2.0.15",
"path": "^0.12.7",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0"
},
"devDependencies": {
"@babel/cli": "^7.7.4",
"@babel/core": "^7.12.10",
"@babel/plugin-transform-runtime": "^7.8.3",
"@babel/preset-env": "^7.16.11",
"@babel/preset-react": "^7.16.7",
"@babel/preset-stage-2": "^7.8.3",
"@babel/register": "^7.7.4",
"assert": "^2.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^8.2.3",
"babel-loader": "^8.2.5",
"babel-plugin-styled-components": "^1.12.0",
"css-loader": "^6.7.1",
"eslint": "^4.19.1",
"eslint-plugin-react": "^7.8.2",
"file-loader": "^6.2.0",
"morgan": "^1.10.0",
"style-loader": "^3.3.1",
"webpack": "^5.72.0",
"webpack-cli": "^4.9.2"
},
有人 运行 遇到过类似的问题吗?如果有,是如何解决的?
正如评论中所指出的,该应用是生产版本,因此删除了调试信息。不过在错误日志中,这些是链接,因此您实际上可以单击它并查看 一些 形式的代码,看看问题出在哪里,代码抛出错误。
根据您的代码,我假设错误是您没有将 Route
组件渲染到 Routes
组件中。 Routes
组件是处理路由路径匹配的组件,在 react-router-dom@6
.
import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import HomePage from './components/Homepage';
render(
<Router>
<div>Hello from react</div>
<Routes>
<Route path="/" element={<HomePage />} />
</Routes>
</Router>,
document.getElementById('app-portal')
);