从API获取JSON信息

问题描述

我正在使用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();
},[]);

here is my code sample image,with a fake getService function,you can see the correct log at the bottom of image

,
11.0.0

尝试一下