我可以成功地从数据库中获取数据,但如何在Select中显示数据?
这是我希望在select中显示数据的位置。
<Select
fullWidth
value={newUsers}
onChange={handleChange}
>
<MenuItem value={0}>{newUsers.label}</MenuItem>
这是我从数据库调用数据的方式(这是工作的,我可以从我的控制台看到数据)
const [newUserLists, setNewUserLists] =useState([]);
const newUsers= [];
const fetchData = async () => {
const response = await getreason();
response.data.map(function(u){
newUsers.push({
label: u.applicationcode,
value: u.applicationid
})
})
setNewUserLists(newUsers)
}
useEffect(() => {
fetchData();
}, [reRender]);
这是console.log中的结果
2条答案
按热度按时间fkaflof61#
让我们在Material-UI Select tutorial和API doc page上对此进行建模。
value
是当前选择的输入值。您似乎试图将其设置为从DB响应中读取的对象列表,这是不正确的。通常的做法如下:newUserLists
。我将假设newUsers
只是一个占位符,用于将响应中的数据放入其中,但根据@Naim-Mustafa的回答,它不需要,也不应该在您的显示中使用。newUsersList
来生成MenuItem
的列表呢?就像您在其他地方所做的那样,map
是关键:请注意,我假设
value
对于id
字段是唯一的,如果不是,请替换为更合适的值。mwecs4sa2#
您可以将
const newUsers= [];
更改为let newUsers= [];
但您根本不必使用newUsers数组,而是尝试使用state