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 中,设置了默认值,因此一切正常。
伙计们,我需要你的帮助。
我正在使用 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 中,设置了默认值,因此一切正常。