【发布时间】:2021-02-09 17:05:38
【问题描述】:
我在我的 React 项目中使用 material-ui,但是我收到了这个错误
错误:无效的挂钩调用。钩子只能在体内调用 的一个功能组件。这可能发生在以下情况之一 原因:
- 您的 React 和渲染器版本可能不匹配(例如 React DOM)
- 您可能违反了 Hooks 规则
- 您可能在同一个应用中拥有多个 React 副本
这是我的代码
Header.js
import React from 'react';
import "./Header.css"
import PersonIcon from '@material-ui/icons/Person';
function Header() {
return (
<div className='header'>
<h2>Header</h2>
<PersonIcon fontsize="large" className="header_icon"/>
</div>
)
}
export default Header
App.js
import React from 'react';
import './App.css';
import Header from './Header';
function App() {
return (
<div className="app">
<Header />
</div>
);
}
export default App;
【问题讨论】:
-
如果这就是您项目中的全部内容,您可能拥有不同版本的
react和react-dom。如果没有,请向我们提供更多信息。 -
不,我检查了我的 package.json ,版本相同,问题出在 material-ui 中,它使用旧的 react 版本,我该如何解决?
-
你使用的是哪个版本的 react 和 material-ui?
-
"dependencies": { "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@testing-library /jest-dom": "^5.11.5", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "react" :“^17.0.1”、“react-dom”:“^17.0.1”、“react-scripts”:“4.0.0”、“web-vitals”:“^0.2.4”}
-
Material-ui
4.11在react: ^16.8.0上有一个 peerDependency,而你有react: 17.0.1。尝试将您的反应版本降级为react: 16.x.x。
标签: javascript reactjs material-ui