我有一个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,直到我重新启动它。谢谢所有的