api 在 iOS 但不是 android 上调用服务器 returns 空数组

api call to server returns empty array on iOS but not 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]);

  );

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