首页 > 解决方案 > 对服务器的 api 调用在 iOS 上返回空数组,但在 android 上不返回

问题描述

伙计们,我需要你的帮助。

我正在使用 react native v 0.63 来构建一个常用的应用程序。没有什么太疯狂了。

正在发生的奇怪的事情是,我对我们自己的服务器的 axios 调用在 iOS 模拟器中返回了空数组,这是不正确的!我已经在 android 设备上对其进行了测试,并且数据按预期出现,没有问题(对象数组),这意味着代码应该没有任何问题。

那么究竟是什么原因呢?

我正在使用 iOS 模拟器 5s。

这是代码:

      const selectedChildId = useSelector((state) => state.user.selectedChildId);
      const request = () => {
       const url = `api/v1/tasks/task-category/?child=${selectedChildId}`;
       if (selectedChildId) {
        setLoading(true);
         Axios.get(url)
          .then(({ data }) => {
             console.warn('data', data); --> in iOS simulator result is: 'data []' which is wrong!
          });
        })
        .catch((error) => {
          console.warn('err', error);
        })
        .finally(() => {
          setLoading(false);
        });
    }
  };

  React.useEffect(() => {
    request();
  }, [selectedChildId]);

  );

标签: react-nativeaxiosreact-native-ios

解决方案


原来问题是因为axios header。标题中缺少一个需要的字段,这恰好导致了 iOS 中的问题。但是在 android 中,设置了默认值,因此一切正常。


推荐阅读