2016-07-19 7 views
1

Ich verwende das npm-Paket react-native-fetch-blob.
Ich habe alle Schritte von der git repository verfolgt, um das Paket zu verwenden.npm reactive-native-fetch-blob - "RNFetchBlob.fetch ist keine Funktion"

ich importierte dann das Paket der folgende Zeile ein:

var RNFetchBlob = require('react-native-fetch-blob'); 

Ich versuche, ein BLOB mit einem Bild von dem Server anzufordern.

Dies ist meine Hauptmethode.

fetchAttachment: function(attachment_uri) { 

    var authToken = 'youWillNeverGetThis!' 
    var deviceId = '123'; 
    var xAuthToken = deviceId+'#'+authToken 

    //Authorization : 'Bearer access-token...', 
    // send http request in a new thread (using native code) 
    RNFetchBlob.fetch('GET', config.apiRoot+'/app/'+attachment_uri, { 

     'Origin': 'http://10.0.1.23:8081', 
     'X-AuthToken': xAuthToken 
    }) 
    // when response status code is 200 
    .then((res) => { 
     // the conversion is done in native code 
     let base64Str = res.base64() 
     // the following conversions are done in js, it's SYNC 
     let text = res.text() 
     let json = res.json() 
    }) 
    // Status code is not 200 
    .catch((errorMessage, statusCode) => { 
     // error handling 
    }); 
} 

Ich halte den folgenden Fehler empfangen:

"Mögliche Unhandle Versprechen Refection (id: 0): Typeerror: RNFetchBlob.fetch ist keine Funktion".

Irgendwelche Ideen?

+3

Try var RNFetchBlob = require ('reagieren-native-Fetch-Blob') default; – rmevans9

+1

@Cherniv sollte es "importieren RNFetchBlob von ..." nach [das Handbuch] (https://www.npmjs.com/package/react-native-fetch-blob#recipes) sein. Deshalb ist '.default' wahrscheinlich erforderlich. – robertklep

+0

@ rmevans9 Das hat funktioniert. Schreibe es als Antwort auf und ich werde die Lösung akzeptieren. Vielen Dank. – Larney

Antwort

4

Das Problem besteht darin, dass Sie Anweisungen im ES5-Stil require mit einer Bibliothek verwenden, die mit ES6/ES2015 geschrieben wurde. Sie haben zwei Möglichkeiten:

ES5:

var RNFetchBlob = require('react-native-fetch-blob').default 

ES6.

import RNFetchBlob from 'react-native-fetch-blob'