vic*_*gas 7 reactjs material-ui
我正在尝试使用上下文提供程序应用自定义 MUI 主题,但该主题未应用于子组件中。
这是我的调色板代码:
import React from "react";
import { createTheme, ThemeProvider } from "@material-ui/core";
import { orange } from "@material-ui/core/colors";
const theme = createTheme({
palette: {
primary: orange,
secondary: {
main: "#000000",
},
},
});
export default function Palette({ children }) {
return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
}
Run Code Online (Sandbox Code Playgroud)
这是我使用它的自定义按钮:
import React from "react";
import Icon from "@material-ui/core/Icon";
import Button from "@mui/material/Button";
import Palette from "../Themes/Palette";
export default function IconButton({ icon }) {
return (
<Palette>
<Button
sx={{
width: 60,
height: 60,
borderRadius: "50%",
}}
variant="contained"
>
<Icon>{icon}</Icon>
</Button>
</Palette>
);
}
Run Code Online (Sandbox Code Playgroud)
您正在使用不同版本的material-ui库。如果您使用@material-ui则意味着您正在使用 v4。如果您使用@mui则表示您使用的是 v5。
你应该改变:
import { createTheme, ThemeProvider } from "@material-ui/core";
import { orange } from "@material-ui/core/colors";
Run Code Online (Sandbox Code Playgroud)
到:
import { createTheme, ThemeProvider } from "@mui/material/styles";
import { orange } from "@mui/material/colors";
Run Code Online (Sandbox Code Playgroud)
你还应该改变:
import Icon from "@material-ui/core/Icon";
Run Code Online (Sandbox Code Playgroud)
到:
import Icon from "@mui/material/Icon";
Run Code Online (Sandbox Code Playgroud)
您可以查看此 stackblitz的实时工作示例。
您还可以查看从 v4 到 v5 的迁移。
小智 5
如果人们已经尝试了几乎所有方法但他们的样式仍然不适用,请删除所有 mui 和样式包并重新安装它们。可能存在一些冲突的软件包,导致 mui 出现问题。我花了两天时间坚持应用自定义主题,然后终于做到了。它确实有效,这就是我写这个答案的原因。和平。
| 归档时间: |
|
| 查看次数: |
10759 次 |
| 最近记录: |