Я получаю ответ от API, как показано ниже json
.Используя этот ответ, я генерирую динамический select
.
Проблема: Невозможно выбрать другое значение для другого окна выбора.Я пытаюсь добиться с государством.Как динамически объявлять состояние в этом случае.
JSON
const jsonFields = {
fields: [
{ name: "sex", value: ["m", "f"] },
{ name: "age", value: ["10", "20"] }
]
};
примечание: я не знаю имени ключа json, такого как пол и возраст.имя будет динамическим
Выберите изменение:
handleChange = event => {
this.setState({ [event.target.name]: event.target.value });
};
Загрузка полей:
loadfields = () => {
const FieldsArray = [];
let FieldsData = jsonFields.fields;
FieldsData.forEach((val, index) => {
let FieldsDatavalue = val.value;
FieldsArray.push(
<FormControl>
<InputLabel htmlFor="controlled-open-select">{val.name}</InputLabel>
<Select
value=""
onChange={this.handleChange}
inputProps={{
name: "age"
}}
>
{FieldsDatavalue.map(option => (
<MenuItem key={option} value={option}>
{option}
</MenuItem>
))}
</Select>
</FormControl>
);
});
return FieldsArray;
};
Сценарий: Код Песочница