为什么我收到此错误:无效的挂钩调用。Hooks 只能在函数组件的主体内部调用/

IT技术 reactjs react-hooks mern react-dom
2022-08-03 01:21:19

错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能由于以下原因之一而发生:

  1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM)
  2. 您可能违反了 Hooks 规则
  3. 你可能在同一个应用程序中拥有多个 React 副本

这是我的 App.js 代码

import './App.css';
import Header from './Header'
function App() {
  return (
    <div className="app">
      < Header />

    </div>
  );
}
export default App;

Header.js 代码

import React from 'react'
import './Header.css';
import PersonIcon from '@material-ui/icons/Person';
import IconButton from '@material-ui/core/IconButton';


function Header() {

    return (    
        <div className='header'>
            <IconButton>
                <PersonIcon fontSize="large" className="header__icon" />
            </IconButton>
        </div>
    )
}
export default Header

我在 index.js 中使用了我的 App.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
reportWebVitals();

当我删除<PersonIcon><IconButton>标记代码工作正常。

2个回答

尝试这个

npm uninstall @material-ui/core @material-ui/icons

然后

npm i @material-ui/core @material-ui/icons

重启 React 服务器

npm start
// OR
yarn start

让我知道它是否有效,祝你好运

事实证明,在我的情况下,我将软件包安装到了错误的文件夹中,我想分享我的解决方案,以防有人犯和我一样的错误