如何在不使用 MUIThemeProvider 的情况下覆盖 material-ui TextField 组件的样式?
How to override styles for material-ui TextField component without using the MUIThemeProvider?
如果不使用,我将如何隐藏/删除 TextField 组件中的下划线:
const theme = createMuiTheme({
overrides: {
MuiInput: {
underline: {
'&:hover:not($disabled):before': {
backgroundColor: 'rgba(0, 188, 212, 0.7)',
},
},
},
},
});
我想根据文档使用道具来完成:https://material-ui.com/api/input/
我应该可以更改下划线属性,但它不起作用。
这就是你的做法:
<TextField
id="name"
label="Name"
value={this.state.name}
margin="normal"
InputProps={{disableUnderline: true}}
/>
我是怎么弄明白的?
您已链接到 Input
documentation,它确实有一个 disableUnderline
属性。
但是,您使用的是 TextField
component:
It's important to understand that the text field is a simple
abstraction on top of the following components:
- FormControl
- InputLabel
- Input
- FormHelperText
如果您查看 TextField
的可用道具列表:
InputProps - object - Properties applied to the Input element.
我找到了解决这个问题的方法..
<TextField InputProps={{classes: {underline: classes.underline}}} />
const styles = theme => ({
underline: {
'&:hover': {
'&:before': {
borderBottom: ['rgba(0, 188, 212, 0.7)', '!important'],
}
},
'&:before': {
borderBottom: 'rgba(0, 188, 212, 0.7)',
}
}
})
使用最新版本的 Material-UI 这是我完成这项工作的唯一方法:
<TextField InputProps={{classes: {underline: classes.underline}}} />
const styles = theme => ({
underline: {
'&:before': {
borderBottomColor: colors.white,
},
'&:after': {
borderBottomColor: colors.white,
},
'&:hover:before': {
borderBottomColor: [colors.white, '!important'],
},
},
})
如果不使用,我将如何隐藏/删除 TextField 组件中的下划线:
const theme = createMuiTheme({
overrides: {
MuiInput: {
underline: {
'&:hover:not($disabled):before': {
backgroundColor: 'rgba(0, 188, 212, 0.7)',
},
},
},
},
});
我想根据文档使用道具来完成:https://material-ui.com/api/input/
我应该可以更改下划线属性,但它不起作用。
这就是你的做法:
<TextField
id="name"
label="Name"
value={this.state.name}
margin="normal"
InputProps={{disableUnderline: true}}
/>
我是怎么弄明白的?
您已链接到 Input
documentation,它确实有一个 disableUnderline
属性。
但是,您使用的是 TextField
component:
It's important to understand that the text field is a simple abstraction on top of the following components:
- FormControl
- InputLabel
- Input
- FormHelperText
如果您查看 TextField
的可用道具列表:
InputProps - object - Properties applied to the Input element.
我找到了解决这个问题的方法..
<TextField InputProps={{classes: {underline: classes.underline}}} />
const styles = theme => ({
underline: {
'&:hover': {
'&:before': {
borderBottom: ['rgba(0, 188, 212, 0.7)', '!important'],
}
},
'&:before': {
borderBottom: 'rgba(0, 188, 212, 0.7)',
}
}
})
使用最新版本的 Material-UI 这是我完成这项工作的唯一方法:
<TextField InputProps={{classes: {underline: classes.underline}}} />
const styles = theme => ({
underline: {
'&:before': {
borderBottomColor: colors.white,
},
'&:after': {
borderBottomColor: colors.white,
},
'&:hover:before': {
borderBottomColor: [colors.white, '!important'],
},
},
})