2015-07-23 13 views
14

Ich baue eine App in der nativen Reaktion, die Fetch-Aufrufe macht, die sich auf die aktuellsten Informationen vom Server verlassen. Ich habe bemerkt, dass es scheint, die Antwort zwischenzuspeichern, und wenn ich diesen Aufruf erneut ausführen, wird die zwischengespeicherte Antwort lieber als die neue Information von meinem Server zurückgegeben.Reactive Native - Aufruf im Cache cached

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(); 
} 

und die Funktion von api.js in Berufung ist wie folgt:

loadContent(userid){ 
    let url = `http://####.com/api/loadContent?User_id=${userid}`; 
    return fetch(url).then((response) => response.json()); 
} 

Antwort

26

Sie ein Header festlegen aus, die Anforderung zu verhindern zwischengespeichert werden. Beispiel unten:

return fetch(url, { 
    headers: { 
    'Cache-Control': 'no-cache' 
    } 
}).then(function (res) { 
    return res.json(); 
}).catch(function(error) { 
    console.warn('Request Failed: ', error); 
}); 
Verwandte Themen