【问题标题】:How to get rid of duplicate old react in other library如何摆脱其他库中重复的旧反应
【发布时间】:2021-02-09 17:05:38
【问题描述】:

我在我的 React 项目中使用 material-ui,但是我收到了这个错误

错误:无效的挂钩调用。钩子只能在体内调用 的一个功能组件。这可能发生在以下情况之一 原因:

  1. 您的 React 和渲染器版本可能不匹配(例如 React DOM)
  2. 您可能违反了 Hooks 规则
  3. 您可能在同一个应用中拥有多个 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;

【问题讨论】:

  • 如果这就是您项目中的全部内容,您可能拥有不同版本的reactreact-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.11react: ^16.8.0 上有一个 peerDependency,而你有 react: 17.0.1。尝试将您的反应版本降级为react: 16.x.x

标签: javascript reactjs material-ui


【解决方案1】:

Material-ui 4.11 对 react: ^16.8.0 有 peerDependency 并且你有 react: 17.0.1。尝试降级你的反应版本来反应:16.x.x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多