У меня проблема с пользовательским интерфейсом материала RadioGroup в сочетании с FormControlLabels, возвращаемым компонентом.
В настоящее время я пытаюсь это сделать:
<FormControl component="fieldset">
<RadioGroup
row
name="genreSelection"
className="genre-wrapper"
value={this.state.selection}
onChange={this.handleRadioSelection}
>
{
this.state.genres.map(genre => (
<GenreItem key={genre} label={genre} radioButton/>
))
}
</RadioGroup>
</FormControl>
И функция рендеринга GenreItem выглядит следующим образом:
if (this.props.radioButton) {
return (
<FormControlLabel
value={this.props.label}
label={this.props.label}
control={
<Radio/>
}
className="genre-item"
/>
);
}
// Another return here
Моя проблема в том, что FormControlLabel работает неправильно, поскольку "handleRadioSelection" не запускается ни на одномselection.
К настоящему времени я обнаружил, что входной элемент, сгенерированный из элемента Radio, не имеет name = "genreSelection" в качестве атрибута, что означает, что он не принадлежит определенной RadioGroup.выше.
Если я помещаю FormControlLabel из GenreItem и непосредственно в функцию this.state.genres.map , все работает простоотлично.
Я что-то не так делаю или это просто ограничение материального интерфейса?