【发布时间】:2019-12-10 12:21:56
【问题描述】:
我有一个大型 React 应用,现在使用 Material UI 4.3.0。
我试图删除label + .MuiInput-formControl 的margin-top 样式。 (它是一个select mui 组件)
我在我的 App.js 中使用了“覆盖”标签,就像我以前一样,做
const theme = createMuiTheme({
overrides: {
MuiInput: {
formControl: {
"label + &": {
marginTop: "0",
}
}
}
},
...
}
而且它工作得很好......但每隔一次我使用相同的组件时它就坏了,正如预期的那样。 在我想要更改边距的当前工作文件中,我很难覆盖默认样式。覆盖它的正确方法是什么?
我尝试过覆盖类,但未成功,尝试按照我在上面的 createmuitheme 中所写的方式执行 const styles = theme => ({ overrides.... etc,并尝试使用内联样式。
我知道有正确的方法可以做到这一点,但我没有足够的经验来找到它。一种不正确但可行的方法是将组件包装在 div 中并在其上使用负边距,但我希望以正确的方式纠正它,因为它稍后也会有用。
谢谢!
编辑:我正在尝试设置样式的组件
renderFormats(){
const { formats } = this.state;
var formatsDOM = undefined;
if(formats !== undefined && this.state.selectedFormat !== undefined){
formatsDOM =
<Select
value={this.state.selectedFormat}
onChange={this.onExportChange.bind(this)}
disabled={!this.state.customFormatIsSelected}
inputProps={{
name: 'Format',
id: 'FormatInput',
}}
>
{formats.map( format => this.renderFormatEntry(format))}
</Select>
}
return formatsDOM;
}
【问题讨论】:
-
如果你使用
Select而不是TextField,那么这意味着FormControl和InputLabel被你的代码分别控制。请同时包含该代码。
标签: javascript css reactjs material-ui