2016-07-14 60 views
1

我想用URL陣營本地填充圖像與已經從一個blob

<Image source={{uri: this.state.imageURL}} style={styles.thumb} /> 

我從服務器請求的圖像填充的圖像轉換網址,使用取API,並返回一個blob。

然後我用下面一行轉換BLOB到一個URL:

var imageURL = window.URL.createObjectURL(attachmentBLOB); 

當我CONSOLE.LOG()的IMAGEURL它打印:

blob:http%3A//localhost%3A8081/4ce24d92-0b7e-4350-9a18-83b74bed6f87 

我沒有得到任何錯誤或警告。該圖像只是不顯示

我正在使用android模擬器。

請幫忙。提前致謝!

回答

2

陣營天然不支持斑點[參考:Git/React-Native]。爲了得到這個工作,我不得不下載react-native-fetch-blob,它返回一個base64字符串。

函數返回的base64字符串:

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

getImageAttachment: function(uri_attachment, mimetype_attachment) { 

    return new Promise((RESOLVE, REJECT) => { 

    // Fetch attachment 
    RNFetchBlob.fetch('GET', config.apiRoot+'/app/'+uri_attachment) 
     .then((response) => { 

     let base64Str = response.data; 
     var imageBase64 = 'data:'+mimetype_attachment+';base64,'+base64Str; 
     // Return base64 image 
     RESOLVE(imageBase64) 
    }) 

    }).catch((error) => { 
    // error handling 
    console.log("Error: ", error) 
}); 
}, 

填充圖像的的base64
我然後填充圖像枝條返回base64Image有:

<Image source={{uri: imageBase64}} style={styles.image} />