MUI v5:我是否需要安装 @emotion/react 或 @emotion/styled 才能使用 sx prop?

ela*_*lam 5 reactjs material-ui

我已将我的项目从 v4 迁移到 v5,我只使用sxprop. 我还没有安装@emotion/react,一切正常。有什么理由要安装@emotion/reactand@emotion/styled吗?因为我还没有安装它,一切都运行良好。

"@mui/icons-material": "^5.0.1",
"@mui/lab": "^5.0.0-alpha.48",
"@mui/material": "^5.0.1",
Run Code Online (Sandbox Code Playgroud)

Nea*_*arl 5

如果您在没有额外配置的情况下安装 MUI 软件包,则您将使用由情感驱动的默认样式引擎,而不是使用需要更多设置的样式组件的其他官方样式引擎。

要使用默认样式引擎,您需要安装安装指南中概述的 2 个情感包:

npm install @mui/material @emotion/react @emotion/styled
Run Code Online (Sandbox Code Playgroud)

即使您只使用@mui/icons-material包中的 MUI 图标,您也需要上述 2 个包,如答案中所述。我认为你没有任何错误的唯一原因是因为你还没有使用任何 MUI 组件,或者你正在使用一些无样式的组件,例如它UnstyledButton是一个原始组件,没有应用任何样式它。

编辑:您可以毫无感情地安装的原因@mui/material是因为它已经按包安装了,如此处的package.json@hookform/devtools所示。如果你卸载这两个包并只重新安装,它会再次抱怨缺少情感依赖。@mui/material

npm un @mui/material @mui/lab @mui/icons-material @hookform/devtools
npm i @mui/material @mui/lab @mui/icons-material
Run Code Online (Sandbox Code Playgroud)