Caching 反应本机-缓存获取调用
我正在react native中构建一个应用程序,它可以根据来自服务器的最新信息进行获取调用。我注意到它似乎在缓存响应,如果我再次运行该fetch调用,它将返回缓存的响应,而不是来自服务器的新信息 我的职能如下:Caching 反应本机-缓存获取调用,caching,reactjs,fetch,react-native,Caching,Reactjs,Fetch,React Native,我正在react native中构建一个应用程序,它可以根据来自服务器的最新信息进行获取调用。我注意到它似乎在缓存响应,如果我再次运行该fetch调用,它将返回缓存的响应,而不是来自服务器的新信息 我的职能如下: goToAll(){ AsyncStorage.getItem('FBId') 。然后((值)=>{ api.loadCurrentUser(值) 。然后((res)=>{ 加载内容(res['RegisteredUser']['id']) 。然后((res2)=>{ console.
goToAll(){
AsyncStorage.getItem('FBId')
。然后((值)=>{
api.loadCurrentUser(值)
。然后((res)=>{
加载内容(res['RegisteredUser']['id'])
。然后((res2)=>{
console.log(res2);
这个是.props.navigator.push({
组件:ContentList,
标题:“全部”,
通行证:{
内容:res2,,
用户:res['RegisteredUser']['id']
}
})
});
});
})
.catch((错误)=>{console.log(错误);})
.完成();
}
来自api.js im调用的函数如下:
loadContent(userid){
让url=`http://#####com/api/loadContent?User_id=${userid}`;
返回fetch(url).then((response)=>response.json());
}
您可以设置标题
以防止缓存请求。
示例如下:
return fetch(url, {
headers: {
'Cache-Control': 'no-cache'
}
}).then(function (res) {
return res.json();
}).catch(function(error) {
console.warn('Request Failed: ', error);
});
Manosim的回答对我不起作用,但让我找到了一个可行的解决方案:
这就解决了问题。我在react native(Android)和使用clojurescript(而不是js)获取时也遇到了类似的问题。 添加:缓存“no store”(不在标题中)停止了该行为(在Android应用程序上缓存获取数据) 我认为js中的代码应该是这样的:
fetch(url, {'cache':'no-store'})
“
无缓存
并不意味着“不缓存”,它意味着在使用缓存资源之前必须与服务器进行检查(或“重新验证”。“请改用无存储
”。src:
fetch(url, {'cache':'no-store'})