【发布时间】:2020-01-30 03:12:50
【问题描述】:
我发现了许多关于覆盖样式的帖子,但与我遇到的问题完全不同。我正在创建样式化的 material-ui 组件并将它们导入我的应用程序的不同部分。我希望能够覆盖来自各种父组件的一些样式。
我有一个按钮组件:
import React from "react";
import { makeStyles } from "@material-ui/styles";
const useStyles = makeStyles({
buttonBlue: {
background: "#09a1e2",
border: "1px solid #09a1e2",
borderRadius: "5px",
color: "#ffffff",
cursor: "pointer",
fontSize: "1.25rem",
padding: ".75rem 1.25rem .75rem 1.25rem",
"&:hover": {
backgroundColor: "#ffffff",
color: "#09a1e2"
}
},
buttonWhite: {
background: "#ffffff",
border: "1px solid #666666",
borderRadius: "5px",
cursor: "pointer",
fontSize: "1rem",
padding: ".5rem",
width: "6rem",
"&:hover": {
backgroundColor: "#666666",
color: "#ffffff"
}
}
});
const MediumButton = props => {
const color = props.color;
const classes = useStyles();
return (
<div>
{color === "blue" ? (
<button className={classes.buttonBlue}>{props.buttonText}</button>
) : (
<button className={classes.buttonWhite}>{props.buttonText}</button>
)}
</div>
);
};
export default MediumButton;
我将导入另一个组件。我想在我的新组件上覆盖其中一些样式,但我不太清楚如何。
这是我正在尝试的:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import { withContext } from "../../context/AppContext";
import MediumButton from "../components/MediumButton";
const useStyles = makeStyles({
root : {
display: "flex",
},
homeButton: {
background: "white",
border: "1px solid #09a1e2",
borderRadius: "5px",
color: "#09a1e2",
cursor: "pointer",
fontSize: "1.25rem",
padding: ".5rem 3.25rem .5rem 3.25rem",
textDecoration: 'none',
"&:hover": {
backgroundColor: "#ffffff",
color: "#09a1e2"
}
}
});
const PageNotFound = () => {
const classes = useStyles();
return (
<div className={classes.root}>
<MediumButton className={classes.homeButton} />
</div>
);
};
export default withContext(PageNotFound);
我不确定我需要调用什么来覆盖我在 MediumButton 组件上设置的样式。
【问题讨论】:
标签: css reactjs material-ui