【发布时间】:2022-01-08 04:46:34
【问题描述】:
即使我直接使用来自https://www.w3schools.com/react/react_router.asp 等来源的代码,我也无法使用路由器
index.js
import ReactDOM from "react-dom";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Layout from "./pages/Layout";
import Home from "./pages/Home";
import Contact from "./pages/Contact";
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Home />} />
<Route path="contact" element={<Contact />} />
</Route>
</Routes>
</BrowserRouter>
);
}
ReactDOM.render(<App />, document.getElementById("root"));
布局.js
import { Outlet, Link } from "react-router-dom";
const Layout = () => {
return (
<>
<nav><ul><li><Link to="/">Home</Link></li>
<li><Link to="/contact">Contact</Link></li>
</ul>
</nav>
<Outlet />
</>
)
};
export default Layout;
Home.js
const Home = () => {
return <h1>Home</h1>;
};
export default Home;
不过,我还是遇到了这个错误。
react.development.js:1476
未捕获的错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一:
- 您的 React 和渲染器版本可能不匹配(例如 React DOM)
- 您可能违反了 Hooks 规则
- 您可能在同一个应用中拥有多个 React 副本
package.json
{
"name": "sunalanda",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
"@testing-library/user-event": "^13.5.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "5.0.0",
"web-vitals": "^2.1.2"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
【问题讨论】:
-
Please do not upload images of code/errors when asking a question.。此外,询问代码不起作用的问题必须附有证明问题的minimal reproducible example。
-
请提供minimal reproducible example 并指出是哪一行导致了错误。
-
如果我在 Routes 中使用组件,我的页面会显示为空白并显示错误。我可以单独使用组件。 @代码学徒
-
@Agney 我已添加代码
-
你的节点版本是多少
标签: reactjs react-hooks react-router-dom