declare array in State to hold data
this.State{
category:[], // to keep fetched data from database
selectedCategory: "", // to keep selected item from dropdown
}
Load data in to array
instance.get('/Catagory.json')
.then(response=>{
console.log(response.data);
const fetchedResult=[];
for(let key in response.data){
fetchedResult.unshift(
{
...response.data[key],
id:key
}
)
}
this.setState({category:fetchedResult})
})
In render() method write code to display dropdown menu.
<div>
<label>Select Item </label>
<select value={this.state.selectedCategory}
onChange={e => this.setState({selectedCategory: e.target.value})}> //onChange function will set selectedCategoty in State with choosen item
{this.state.category.map((item) => <option key={item.id} value={item.id}>{item.name} //Name to show in dropdown
</option>)} //load values to dropdown
</select>
</div>
Replace value="item.id" with any property you need to keep as selected item.this value will save as 'selectedcategory'in State.
Replace {item.name} to change text to display at dropdown. ex: {item.color}
Sample JSON
"Vehicle":{
001{
"name":"Car"
"color":"red"
},
002{
"name":"Bus"
"color":"Yellow"
},
}