2016-10-10 2 views
2

나는 웹에서 사용되는 희박한 행동이 있습니다. 우리는 웹과 네이티브 사이의 논리를 공유하고 구성 요소 만 변경할 수 있도록 네이티브 프로젝트에 대응하기 위해 이러한 작업을 사용하고 있습니다.네이티브 파일 생성자를 반품합니다.

이러한 작업 중 하나 (이미지 업로드)는 File을 매개 변수로 사용합니다. 반응이있는 이미지 정보를 얻는 방법을 관리했습니다. 우리는 react-native-image-picker을 사용하고 있습니다. 사용자가 이미지를 선택하면 모든 데이터가 포함 된 응답을 반환합니다.

let file = new File([atob(response.data)], 
     response.fileName, 
     {type: response.type}) 

그러나이 방법은 반응이 없기 때문에 작동하지 않으며 웹상에는 File 생성자가 없습니다. File에 대한 몇 가지 대안을 사용할 수 없습니다. 웹과 네이티브간에 공유되는 redux 작업은 File을 예상하기 때문에 사용할 수 없습니다.

반응 네이티브로 File을 어떻게 만듭니 까?

+1

사용 [반응 네이티브 페치 - BLOB (https://github.com/wkh237/react-native-fetch-blob/blob/master/README.md) 웹 polyfill. – Xeijp

답변

0

AFAIK 웹에서도 파일을 만들 수 없습니다. Object.keys()과 함께 File 객체의 키를 얻으려고하면 아무 것도 얻을 수 없습니다. 그 이유는 표현의 의미이기 때문입니다.

fetch('/endpoint') 
.then(res) { 
    res.blob() 
} 
.then(blob) { 
// Do whatever you want with your blob 
} 

없는 경우 : 당신이 실제로 사용할 수있는 어떤 브라우저에서 파일,하지만 그 이진 대형 개체 파일, 메모리에 기본적으로 파일이 엔드 포인트에서 데이터를 가져 오는하는 경우, 사용하는 것입니다, Blob입니다 할 수있다 new Blob([response.data], {type: response.type}) 모양에 이름이 없으므로 라이브러리로 나중에 처리 할 수 ​​있습니다.

이 도서관 https://github.com/wkh237/react-native-fetch-blob 및 문서 https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API이 될 수 유용

관련 문제