react-native - 对服务器的 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]);
);
解决方案
原来问题是因为axios header。标题中缺少一个需要的字段,这恰好导致了 iOS 中的问题。但是在 android 中,设置了默认值,因此一切正常。
推荐阅读
- javascript - 如何在一个文件中导出数组以将其导入 react.js 中的另一个文件
- c++ - 将网格中的 2 个项目交换为三消游戏
- ios - 用于 ios13 中语言切换的 MOLH Localizer 助手不起作用,因为它的文档指南
- php - 创建 Laravel 数据库表时,我应该先运行哪个终端 - Laravel 6?
- python - “系列”对象没有属性“len”熊猫 CSV 文件
- spring - 如何根据一个端点的特定 REST URL 在 Appdynamics 中创建仪表板
- android - 对相同的应用程序使用相同的密钥库,但再次从头开始构建
- python - 循环列表的问题,列表索引超出范围
- javascript - 如果 div 包含特定的文本字符串,则更改背景颜色
- mysql - How to delete records in another mysql table only if all the matching records have been flagged