React Native Axios.get返回的结果并不新鲜

时间:2017-12-13 07:48:15

标签: ios react-native axios

我使用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 });
});

如果我遗漏任何信息,请告诉我。

如果已经提出这个问题,如果你能指出我正确的方向,我将不胜感激。

非常感谢你!

2 个答案:

答案 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 });
});