问题描述
我正在使用Axios(apisauce)将API连接到React Native App; 这是我尝试使用FlatList在应用程序中显示的JSON文件:
{
"data": {
"sideMenu": {
"url": "https://google.com","icons": [
{
"id": 1,"url": "https://google.com","status": 1
},]
},}
}
当我尝试将其登录到控制台时,使用console.log(response.data)
返回所有API信息,但是使用console.log(response.data.data)
不会返回我正在寻找的对象!
我尝试过JSON.stringify()
或toString()
,但似乎都没有用。
我的Axios代码:
const getServices = () => {
const service = "https://api.team-grp.ir/app/json/services2.json/";
return client.get(service);
};
我的源代码:
const ServiceInfo = async () => {
await getServices()
.then((response) => {
if (response.ok) {
setServicesData(response.data.data);
}
})
.catch((error) => {
console.warn(error);
setServicesData([]);
});
};
useEffect(() => {
ServiceInfo();
});
解决方法
您不应该对.then / .cache使用async / await ... 该代码为我工作: (您还可以在此答案的底部看到带有伪造的getService函数的示例代码图像,并且您会看到记录的响应是正确的)
const ServiceInfo = () => {
getServices().then((response) => {
if (response.ok) {
setServicesData(response.data.data);
}
})
.catch((error) => {
console.warn(error);
setServicesData([]);
});
};
useEffect(() => {
ServiceInfo();
},[]);
,
11.0.0
尝试一下