2016-07-19 18 views
1

npmパッケージreact-native-fetch-blobを使用しています。
私はgit repositoryからすべての手順を踏んでパッケージを使用しました。私は、サーバーからの画像を含むBLOBを要求しようとしていますnpm react-native-fetch-blob - 「RNFetchBlob.fetchが関数ではありません」

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

は、私は次の行を使用してパッケージをインポートしました。

これは私の主な方法です。

"可能な未処理の約束Refection(ID:0):例外TypeError:RNFetchBlob.fetchは関数ではありません"

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

は、私は次のエラーを受信し続けます。

+3

てみますvar RNFetchBlob =必要( '反応-ネイティブ・ブロブフェッチ')デフォルトは、 – rmevans9

+1

@Cherniv [マニュアル](https://www.npmjs.com/package/react-native-fetch-blob#recipes)に従って 'RNFetchBlobを...からインポートする 'べきです。そのため、おそらく '.default'が必要なのです。 – robertklep

+0

@ rmevans9それはうまくいった。答えとして書くと、私は解決策を受け入れます。ありがとう。 – Larney

答えて

4

問題は、ES6/ES2015に対して書かれたライブラリを持つES5スタイルのrequireステートメントを使用していることです。

ES5:

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

ES6:あなたは2つのオプションがあります。

import RNFetchBlob from 'react-native-fetch-blob' 
関連する問題