Я хочу, чтобы ошибка отображалась красным цветом, если не выбрана опция. Есть ли способ это сделать.
<div className = "form-group"> <Select className = "mdc-listdata" data = {countries} label = {'País'} selected_value = {this.countryChange.bind (this)} id = {'sb_country'} /> </div>
@ObsidianAge, подскажите, пожалуйста, способ :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для установки необходимого поля Select с помощью пользовательского интерфейса материала вы можете:
class SimpleSelect extends React.PureComponent {
state = {
selected: null,
hasError: false
}
handleChangeEvent(value) {
this.setState({ selected: value });
}
handleClick() {
this.setState(state => ({ hasError: !state.selected }));
}
render() {
const { classes } = this.props;
const { selected, hasError } = this.state;
return (
<form className = {classes.root} autoComplete = "off">
<FormControl className = {classes.formControl} error = {hasError}>
<InputLabel htmlFor = "name">
Name
</InputLabel>
<Select
name = "name"
value = {selected}
onChange = {event => this.handleChangeEvent(event.target.value)}
input = {<Input id = "name" />}
>
<MenuItem value = "hai">Hai</MenuItem>
<MenuItem value = "olivier">Olivier</MenuItem>
<MenuItem value = "kevin">Kevin</MenuItem>
</Select>
{hasError && <FormHelperText>This is required!</FormHelperText>}
</FormControl>
<button type = "button" onClick = {() => this.handleClick()}>
Submit
</button>
</form>
);
}
}
Пользовательский интерфейс материала имеет и другие типы Select (native), где вы можете просто использовать обычный атрибут HTML, чтобы пометить элемент, как требуется.
<FormControl className = {classes.formControl} required>
<InputLabel htmlFor = "name">Name</InputLabel>
<Select
native
required
value = {this.state.name}
onChange = {this.handleChangeEvent}
inputProps = {{
name: 'name',
id: 'name'
}}
>
<option value = "" />
<option value = {"lala"}>lala</option>
<option value = {"lolo"}>lolo</option>
</Select>
</FormControl>
P.S. https://material-ui.com/demos/selects/#native-select
Он также работает с неродным Select, поскольку он помещен в тег FormControl.
Когда я помещаю «требуется» в FormControl, я получаю «*», поэтому он выглядит обязательным. Но когда я отправляю форму, она фактически не заставляет пользователя заполнять поле, как с TextField.
Добавление <form onSubmit = {this.handleSubmit}></form> решит проблему. @alsky
есть много способов сделать это. сначала покажите образец кода. тогда мы сможем вам помочь.