如何在不使用 MUIThemeProvider 的情况下覆盖 material-ui TextField 组件的样式?
Posted
技术标签:
【中文标题】如何在不使用 MUIThemeProvider 的情况下覆盖 material-ui TextField 组件的样式?【英文标题】:How to override styles for material-ui TextField component without using the MUIThemeProvider? 【发布时间】:2018-10-30 09:12:52 【问题描述】:如何使用以下代码隐藏/删除 TextField 组件中的下划线不使用:
const theme = createMuiTheme(
overrides:
MuiInput:
underline:
'&:hover:not($disabled):before':
backgroundColor: 'rgba(0, 188, 212, 0.7)',
,
,
,
,
);
我想使用道具并根据文档:https://material-ui.com/api/input/
我应该可以更改下划线道具,但它不起作用。
【问题讨论】:
【参考方案1】:这就是你的做法:
<TextField
id="name"
label="Name"
value=this.state.name
margin="normal"
InputProps=disableUnderline: true
/>
我是怎么知道的?
您已链接到Input
documentation,它确实有一个disableUnderline
属性。
但是,您使用的是TextField
component:
了解文本字段很简单很重要 在以下组件之上的抽象:
表单控件 输入标签 输入 FormHelperText
如果您查看TextField
的可用道具列表:
InputProps - 对象 - 应用于 Input 元素的属性。
【讨论】:
嘿伙计。是的,我已经想通了。无论如何感谢您的帮助! 当我使用 inputProps 时,自动完成免费独奏的建议消失了。【参考方案2】:我找到了解决此问题的方法..
<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)',
)
【讨论】:
【参考方案3】:使用最新版本的 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'],
,
,
)
【讨论】:
以上是关于如何在不使用 MUIThemeProvider 的情况下覆盖 material-ui TextField 组件的样式?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?
如何在不更改链接结构的情况下使用 \ 转义字符 (、)、[、]、*、_、:[]()