При использовании нативного выбора в игре есть два основных элемента: Input
и нативный <select>
. Input
- это то, что вам нужно, чтобы изменить подчеркивание, но для нативного выбора. inputProps
передается нативному select
, а не Input
. В этом случае вы можете настроить Input
через свойство input
, а затем предоставить ему класс underline
. Цвет фона, который вы пытаетесь изменить, когда сфокусирован, предназначен для select
, поэтому его можно передать непосредственно в свойство classes
.
Ниже приведены стили и код для выбора и обновленная версия вашей песочницы. В моем примере я использовал три разных цвета для подчеркивания для разных состояний, чтобы вы могли легко увидеть эффект, но вы можете изменить все / любые из них на свой предпочитаемый оттенок зеленого.
const styles = {
focused: {},
disabled: {},
error: {},
select: {
"&:focus": {
backgroundColor: "white"
}
},
underlineInput: {
"&:before": {
// normal
borderBottom: "1px solid #00ff00"
},
"&:after": {
// focused
borderBottom: `2px solid #ff0000`
},
"&:hover:not($disabled):not($focused):not($error):before": {
// hover
borderBottom: `2px solid #0000ff`
}
}
};
<Select
native
classes={{ select: classes.select }}
value={this.state.age}
onChange={this.handleChange("age")}
input={
<Input
classes={{
root: classes.inputRoot,
focused: classes.focused,
disabled: classes.disabled,
error: classes.error,
underline: classes.underlineInput
}}
/>
}
inputProps={{
name: "age",
id: "age-native-simple"
}}
>
<option value="" disabled />
<option value={10}>Ten</option>
<option value={20}>Twenty</option>
<option value={30}>Thirty</option>
</Select>