我使用axios为我的React Native应用程序获取数据,而且我只针对iOS有问题。我可以很好地从我的服务器获取数据,但是如果我从我的API更改任何数据,那么这些更改根本不会反映在iOS中,只有当我重新安装应用程序时才会发生更改。我仍然无法确定造成问题的原因。这只发生在iOS上,Android运行得非常好。
获取数据代码:
axios.get('http://www.example.com/api')
.then((response) => {
// console.log(response);
this.setState({ data: response.data, loading: false });
});
如果我遗漏任何信息,请告诉我。
如果已经提出这个问题,如果你能指出我正确的方向,我将不胜感激。
非常感谢你!
答案 0 :(得分:0)
我的猜测是从缓存中读取页面,因此您获得旧版本。 您需要做的是在链接中添加日期戳,以强制应用加载“新鲜”页面。 它就是这样的:
axios.get('http://www.example.com/api?dt='+(new Date()).getTime())
.then((response) => {
// console.log(response);
this.setState({ data: response.data, loading: false });
});
答案 1 :(得分:0)
可以通过在 header 中添加 headers: {'Cache-Control': 'no-cache'} 来解决。
axios.get('http://www.example.com/api',
headers: {'Cache-Control': 'no-cache'})
.then((response) => {
// console.log(response);
this.setState({ data: response.data, loading: false });
});