Ciao,要使border 变成白色,您必须:
定义一个Theme 对象,您必须在其中定义一个primary 颜色并覆盖MuiOutlinedInput,如下所示:
const Theme = {
palette: {
primary: {
contrastText: "#FFFFFF",
dark: "#FFFFFF",
main: "#FFFFFF",
light: "#FFFFFF"
}
},
overrides: {
MuiOutlinedInput: {
root: {
position: "relative",
"& $notchedOutline": {
borderColor: "#FFFFFF"
},
"&:hover:not($disabled):not($focused):not($error) $notchedOutline": {
borderColor: "#FFFFFF",
"@media (hover: none)": {
borderColor: "#FFFFFF"
}
},
"&$focused $notchedOutline": {
borderColor: "#FFFFFF",
borderWidth: 1
}
}
}
}
};
(我知道,这将覆盖您将在项目中使用的所有 MuiOutlinedInputs,但我发现只有这种方式)。
要将这个Theme 传递给TextField,您必须将它包装成ThemeProvider 并创建一个mui 主题:
import { ThemeProvider, createMuiTheme } from "@material-ui/core/styles";
...
const theme = createMuiTheme(Theme);
...
return (
<ThemeProvider theme={theme}>
<div class={classes.root}>
<TextField />
....
</ThemeProvider>
);
对于文本颜色和默认标签,您必须使用 InputProps 和 InputLabelProps 与 className 类似:
<TextField
variant="outlined"
id="fullName"
label="Username"
InputProps={{
className: classes.input
}}
InputLabelProps={{
className: classes.input
}}
/>
css 将是:
const useStyles = makeStyles(() => ({
input: {
color: "white"
}
}));
Here 一个代码框示例。