@mui/styles 的 NPM 安装不适用于 React 18

Stu*_*t22 27 reactjs material-ui

我正在尝试将Material-UI 样式安装到 React 项目,但每当我在终端中运行此命令时:

npm i @mui/styles

它读取以下消息:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: apollo-music-share@0.1.0
npm ERR! Found: react@18.1.0
npm ERR! node_modules/react
npm ERR!   react@"^18.1.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^17.0.0" from @mui/styles@5.8.0
npm ERR! node_modules/@mui/styles
npm ERR!   @mui/styles@"*" from the root project
Run Code Online (Sandbox Code Playgroud)

这是 React 中的代码:

import { HeadsetTwoTone } from "@mui/icons-material";
import { AppBar, Toolbar, Typography } from "@mui/material";
import React from "react";
import { makeStyles } from "@mui/styles"

const useStyles = makeStyles(theme => ({
    title: {
        marginLeft: theme.spacing(2)
    }
}))

const Header = () => {
    const classes = useStyles();

    return (
        <AppBar color="secondary" position="fixed">
            <Toolbar>
                <HeadsetTwoTone />
                <Typography className={classes.title} variant="h6" component="h1">
                    Apollo Music Share
                </Typography>
            </Toolbar>
        </AppBar>
    )
}

export default Header;
Run Code Online (Sandbox Code Playgroud)

不幸的是,该代码不起作用,因为该包不存在并且无法安装。我在网上搜索了解决方案,但目前似乎没有任何效果。

有人知道如何做到这一点吗?

多谢!

tyl*_*lim 18

npm i @mui/styles --force

它需要不同版本的 React,但实际上使用 React 18 就可以了(从未实际测试过它,但从我对其他有类似问题的软件包的经验来看)

  • 你必须使用 @mui/system 因为 @mui/styles 与 React.StrictMode 或 React 18 不兼容 (6认同)
  • “⚠️ @mui/styles 与 React.StrictMode 或 React 18 不兼容。” - https://mui.com/system/styles/basics/ 它旨在在 React 17 中使用,以帮助协助从 JSS 到 Emotion 样式的过渡 (2认同)