2015-03-31 23 views
6

Rdzeń węzła dostarczany z modułem React Native nie wydaje się zawierać rdzeniowy rdzeń http. Czy jest możliwe dodanie go i użycie w ogóle w React Native?Reakcja natywna i wymagająca ('http')

Wielkie dzięki z góry.

+0

Co należy zrobić? Czy mógłbyś użyć polyfill reagującej sieci macierzystej? http://facebook.github.io/react-native/docs/network.html#content –

+0

Dzięki, Colin. Chciałbym użyć niektórych bibliotek (jedna jest pouchdb), które wymagają modułu http. – NotoriousDMC

Odpowiedz

6

Myślę, że utknąłeś w tej chwili. Rozumiem, że podczas gdy React Native używa nodejs do pracy, środowisko wykonawcze nie jest w rzeczywistości nodejs, dlatego nie możesz po prostu require http.

Ta zamknięta kwestia mówi dość dużo, że w odniesieniu do util i request z nodejs:

https://github.com/facebook/react-native/issues/375

+0

Dzięki za wskazanie tego, Colin. – NotoriousDMC

+0

Rzeczywiście nie jest to węzeł. Łatwiej jest traktować go bardziej jak przeglądarkę, szczerze mówiąc, na przykład zamiast tego użyj 'XMLHttpRequest' lub' fetch' api. –

17

Zdaniem zespołu reagowania-rodzimy,

dla tego konkretnego przypadku, gdy” Prawdopodobnie będziesz chciał użyć interfejsu API pobierania, który jest dostarczany przez środowisko. React Native nie działa w środowisku wykonawczym węzła ( ).

fetch działa podobnie jak http. Oto krótki przykład jak z niego korzystać:

// Using fetch to POST 
 

 
fetch(requestURL, { 
 
    method: 'POST', 
 
    headers: { 
 
    'Accept': 'application/json', 
 
    'Content-Type': 'application/json' 
 
    }, 
 
    body: JSON.stringify({ 
 
    message: this.state.input, 
 
    }) 
 
}) 
 

 
// Using fetch to GET 
 

 
fetch(requestURL) 
 
    .then((response) => response.json()) 
 
    .then((responseData) => { 
 
    this.setState({ 
 
     dataSource: this.state.dataSource.cloneWithRows(responseData), 
 
     loaded: true, 
 
    }); 
 
    }) 
 
    .done();

+0

interesujące jest to, że ich przykłady są już przestarzałe, gdy nie jest już wymagane ("pobieranie"). Pobierz func jest w kompilacji, o ile rozumiem. – codebased

Powiązane problemy