对于更换
inputStyle是
inputProps:
const inputStyle = { WebkitBoxShadow: "0 0 0 1000px white inset" };<TextField name="last_name" inputProps={{ style: inputStyle }} />InputPropsvs.
inputProps是常见的混淆点。大写字母“ I”
InputProps为其中的Input元素提供了道具
TextField(
Input将native包裹在
input中
div)。小写的“ i”
inputProps为
input在
Input组件内呈现的本机元素提供了支持。如果要向本机
input元素提供内联样式,则上面的代码示例将解决问题。
还有其他几种方法可通过使用类使用此方法
withStyles。
如果要使用该
className属性,则必须再次将该属性置于
input(而不是将其包装的div上),才能获得所需的效果。因此,以下内容也将起作用:
const styles = { input: { WebkitBoxShadow: "0 0 0 1000px white inset" }};const MyTextField = ({classes}) => { return <TextField name="email" inputProps={{ className: classes.input }} />;}export default withStyles(styles)(MyTextField);如果要利用“:-webkit-
autofill”伪类,只需调整JSS语法并添加“&”即可引用父规则的选择器:
const styles = { input: { "&:-webkit-autofill": { WebkitBoxShadow: "0 0 0 1000px white inset" } }};const MyTextField = ({classes}) => { return <TextField name="email" inputProps={{ className: classes.input }} />;}export default withStyles(styles)(MyTextField);您也可以利用以下两种方法之一,但
InputProps通过
classes属性使用大写的“ I” :
const styles = { input: { WebkitBoxShadow: "0 0 0 1000px white inset" }};const MyTextField = ({classes}) => { return <TextField name="email" InputProps={{ classes: { input: classes.input } }} />;}export default withStyles(styles)(MyTextField);这是使用所有这些方法的有效示例:



