- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
import React from "react";
import ReactDOM from "react-dom";
import Navbar from "./components/Navbar/Navbar";
import "./App.css";
import Home from "./components/Home/Home";
import { BrowserRouter as Router, Route } from "react-router-dom";
import About from "./components/About/About";
const App = () => {
return (
<>
<Navbar />
<Router>
<Route path="/" component={Home} />
<Route path="/about" component={About} />
</Router>
</>
);
};
export default App;
这是我的 package.json:
{
"name": "neighborhoodmovements",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"server": "nodemon server.js",
"devStart": "nodemon server.js",
"client": "cd client && npm start",
"dev": "concurrently \"npm run server\" \"npm run client\""
},
"author": "Brian Mason",
"license": "ISC",
"dependencies": {
"express": "^4.17.2",
"mongodb": "^4.2.2",
"mongoose": "^6.1.2",
"react-router": "^6.2.1",
"react-router-dom": "^6.2.1"
},
"devDependencies": {
"concurrently": "^6.5.0",
"dotenv": "^10.0.0",
"nodemon": "^2.0.15"
},
"proxy": "http://localhost:5000"
}
当我运行代码时,我在浏览器中收到三个错误:
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
at resolveDispatcher (react.development.js:1476)
at useRef (react.development.js:1515)
at BrowserRouter (index.tsx:140)
at renderWithHooks (react-dom.development.js:14985)
at mountIndeterminateComponent (react-dom.development.js:17811)
at beginWork (react-dom.development.js:19049)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
at invokeGuardedCallback (react-dom.development.js:4056)
at beginWork$1 (react-dom.development.js:23964)
react-dom.development.js:20085 The above error occurred in the <BrowserRouter> component:
at BrowserRouter (http://localhost:3000/static/js/bundle.js:43368:5)
at App
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
at resolveDispatcher (react.development.js:1476)
at useRef (react.development.js:1515)
at BrowserRouter (index.tsx:140)
at renderWithHooks (react-dom.development.js:14985)
at mountIndeterminateComponent (react-dom.development.js:17811)
at beginWork (react-dom.development.js:19049)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
at invokeGuardedCallback (react-dom.development.js:4056)
at beginWork$1 (react-dom.development.js:23964)
导航栏:
import React from "react";
import "./Navbar.css";
import { Link } from "react-router-dom";
import { useState } from "react";
function Navbar() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
return (
<>
<div className="navbar">
<div className="leftSide">
<Link to="/">
<h2 id="header">NeighborhoodMovements</h2>
</Link>
{isLoggedIn && (
<Link to="/dashboard">
<h2 id="nav-item">Dashboard</h2>
</Link>
)}
</div>
<div className="rightSide"></div>
</div>
</>
);
}
export default Navbar;
首页:
import React from "react";
function Home() {
return <h1>Home</h1>;
}
export default Home;
关于:
import React from "react";
function About() {
return <h1>About</h1>;
}
export default About;
不太确定错误是什么。我已经阅读了多个关于如何使用 React 路由器的指南,但它们并没有真正帮助。我正在尝试将这些路由器设置为与 express.js 一起工作。我曾尝试注释掉不同的依赖项,但主要错误似乎仅在于 BrowserRouter。我是一名高中生,非常感谢任何帮助!
最佳答案
我不确定,但我注意到您使用的是 react-router 版本 6。我认为您在版本 5 中实现了它。在版本 6 中,他们稍微改变了我们使用 < strong> react 路由器 https://reactrouter.com/docs/en/v6/upgrading/v5#upgrade-to-react-router-v6
试试这个:**你应该用路由器包装你的应用程序又名 BrowserRouter
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
const App = () => {
return (
<Router>
<Navbar />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Router>
);
};
关于node.js - BrowserRouter 运行错误 - 无效 Hook 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70409105/
我想在我的 React 应用程序中使用 BrowserRouter。我已将我最顶层的组件嵌套在 BrowserRouter 标签中,如图所示: import React from 'react'; i
我读了这个声明: The BrowserRouter should be used when you have a server that will handle dynamic requests (
我想使用 basename 来分隔组件。我也有全局 url,所以我最终使用了 3 个 BrowserRouter。这会导致显示多个内容。如果我去/fruit/search,它会同时显示 Homepag
我是一个新手,无法使用react。我正在关注教程React Tutorial创建注册表单。但这样就已经过时了。我试图通过使用浏览器重定向单击链接来重定向到注册、登录和主页。本教程定义的路线如 cons
我目前在我的 app.js 文件中有这个: 在我的 CompOne 中,我想以编程方式导航到 CompTwo。我知道我可以使用 wind
我正在尝试使用 React Idle Timer 在 15 分钟后转到锁定屏幕。 我遇到的问题是重定向页面。我正在使用带有反应的 Electron 和 react BrowserRouter。因此我不
我正在构建一个 Netflix 克隆应用程序,并且正在使用 react-router-dom v5在不同页面之间切换。但是,当我单击 Link标记 Navbar.jsx ,URL 会发生变化,但相应的
在我的项目中,我必须在不更改 url 的情况下从一个组件导航到另一个组件。为此,我使用了 MemoryRouter这按预期工作。但现在同样的想法应该适用于不同的路线,即 /one和 /two .例如,
我正在尝试使用 npm run build 生成的静态index.html 文件以及react-router。 tl;dr 是;我不需要客户端服务器,我希望通过打开位于构建文件夹中的 index.ht
尝试使用 React,我决定测试 typescript 。 代码: import { BrowserRouter } from 'react-router-dom' import history f
我使用的是 React 路由在线类(class)中的以下代码: import { Router, Route, browserHistory } from 'react-router'; ReactD
我正在使用 React-router 版本 5.5.1,并尝试在我的 index.js 文件中使用它: ./src/index.js 14:8-21 'react-router' does not c
这是我第一次尝试 React。我使用 create-react-app 创建了一个项目,然后对于路由,我使用 React Router V4 for web react-router-dom . 这是
我正在从 React Router v5 升级到 v6。当我运行应用程序时,url 中没有基本名称,也没有加载任何内容,当我将/config2 添加到 url 时,一切都会显示出来。我在使用 v5 B
使用 时出现以下错误react-router-dom 版本 6 : Uncaught Error: Invalid hook call. Hooks can only be called inside
我试图了解 react-router-dom (v5) 包的 BrowserRouter 和 Router 之间的区别以及它们之间的区别下面是我的例子。 文档说: BrowserRouter A th
我是编程新手,如果我阅读官方文档,这会让我有点难以理解。 我正在阅读有关 React Router 4 from here 的内容 在这篇文章中,作者谈论的是 和 这就是他提到的: HashRoute
使用HashRouter,路由在所有情况下都能正常工作,但是当使用BrowserRouter时,刷新页面时会显示错误。 这是我封装在 HashRouter 和 BrowserRouter 下的路由代码
这是我的代码: import React from "react"; import ReactDOM from "react-dom"; import Navbar from "./component
这是我的代码: import React from "react"; import ReactDOM from "react-dom"; import Navbar from "./component
我是一名优秀的程序员,十分优秀!