Родной select
не имеет options
реквизита. Вам необходимо вручную map
тег option
:
<select
value={this.state.skill}
onChange={this.handleSkillChange}
placeholder="Skills"
>
{this.state.skillList.map((optionSkill) => (
<option value={optionSkill.value}>{optionSkill.label}</option>
)}
</select>
В настоящее время вы добавили skillList
как обычную переменную с областью действия модуля. Даже если вы изменили skillList
, то же самое не будет отражено в пользовательском интерфейсе, потому что React не обнаруживает это изменение. вам придется изменить skillList
на переменную состояния для React.
this.state = {
skill: "",
skillId: "",
skillList: []
}
fetch("http://localhost:3001/dataservices/getallskills")
.then (res=>res.json())
.then(res => {
this.setState({
skillList: res.recordsets[0].map((recordSet) => ({
label: recordSet.SkillTitle,
value: recordSet.SkillId,
}))
});
});