从JSON数据WebAPI填充React下拉菜单



我有一个react表单,它有几个下拉菜单,它是工作的,但是,WebAPI改变了,现在返回的数据略有不同,现在没有一个下拉菜单被填充。

旧的JSON格式如下:

{
"data":
[{
"id" : 1,
"name" : "Michelle Smith",
},
{
"id" : 2,
"name" : "Jenn Arnold"
}
]
}

下拉绑定是:

const [ admins, setAdmin] = useState([]);
useEffect(() => {
getAdmins();
},[]);

//calls a JS file that connects to the API using axios
const getAdmins = () => {
adminGroups.GetAllAdmins()
.then((response) => {
setAdmins(response.data.data)
} 
}


return (
<select>
<option>...</option>
{admins.map(data => {
<option
value={admin.id}
>
{admins.name}
<option>


</select>
)

新的JSON格式为:

[{
"id" : 1,
"name" : "Michelle Smith",
},
{
"id" : 2,
"name" : "Jenn Arnold"
}]

没有父"data"标记,是什么原因导致下拉菜单停止与新格式的绑定?当页面加载时,我可以看到API被调用(在网络选项卡下),如果我去到URL,我可以看到数据,而不是在React应用程序中。是否有另一种方式我应该绑定下拉菜单?

[我对React和使用React作为UI将Access应用程序转换为web相当陌生]

如果所有的改变是你使用的API不再包装数组在data那么只是不要去寻找它在你的response.data.data使用,

response.data代替

const getAdmins = () => {
adminGroups.GetAllAdmins()
.then((response) => {
setAdmins(response.data)
} 
}

我得到了这个工作,只是通过关闭VS并再次打开它。不确定是否VS有缓存或没有,但API是返回数据,只是不是UI,直到我重新启动它。谢谢所有的

最新更新