2015-07-23 18 views
14

Buduję aplikację reagując natywnie, która wykonuje połączenia pobierania, które opierają się na najbardziej aktualnych informacjach z serwera. Zauważyłem, że wydaje się buforować odpowiedź i jeśli ponownie uruchomię to wywołanie pobierania, zwróci buforowaną odpowiedź, a nie nowe informacje z mojego serwera.React Native - Bufor połączeń pobierania

Moja funkcja jest następująca:

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

a funkcja z api.js im powołanie się następująco:

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

Odpowiedz

26

Można ustawić Header aby zapobiec wniosek jest buforowane. Przykład poniżej:

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