Heim > Fragen und Antworten > Hauptteil
Ich erstelle eine App in React Native, die einen Abrufaufruf durchführt, der sich auf den Server verlässt, um die neuesten Informationen zu erhalten. Mir ist aufgefallen, dass die Antwort scheinbar zwischengespeichert wird. Wenn ich den Abrufaufruf erneut ausführe, wird die zwischengespeicherte Antwort anstelle der neuen Informationen vom Server zurückgegeben.
Meine Funktion ist wie folgt:
goToAll() { AsyncStorage.getItem('FBId') .then((value) => { api.loadCurrentUser(value) .then((res) => { api.loadContent(res['RegisteredUser']['id']) .then((res2) => { console.log(res2); this.props.navigator.push({ component: ContentList, title: 'All', passProps: { content: res2, user: res['RegisteredUser']['id'] } }) }); }); }) .catch((error) => {console.log(error);}) .done(); }
Die von mir aufgerufene api.js-Funktion lautet wie folgt:
loadContent(userid){ let url = `http://####.com/api/loadContent?User_id=${userid}`; return fetch(url).then((response) => response.json()); }
P粉5485126372023-10-22 21:31:24
Manosim 的答案对我来说不起作用,但让我走上了一条确实有效的解决方案:
fetch(url, { headers: { 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': 0 } })
这解决了问题。
P粉7382485222023-10-22 12:07:09
您可以设置标头
以防止请求被缓存。
下面的例子:
return fetch(url, { headers: { 'Cache-Control': 'no-cache' } }).then(function (res) { return res.json(); }).catch(function(error) { console.warn('Request Failed: ', error); });