React Native File构造函数

时间:2016-10-10 13:26:54

标签: javascript android reactjs react-native

我有在网络中使用的redux操作。我们在反应本机项目中使用这些操作,以便我们可以在web和native之间共享逻辑,只更改组件。

其中一项操作(图片上传)以File为参数。我们管理了如何以原生方式获取图像信息 - 我们正在使用react-native-image-picker。当用户选择图像时,它会返回包含所有数据的响应。

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

但是,这并不适用于本地反应,网络上没有File构造函数。我不能使用File的替代方法,因为在web和native之间共享的redux操作需要File

如何在react-native中创建File

1 个答案:

答案 0 :(得分:0)

AFAIK即使在网络上你也无法创建文件,甚至更多,如果你试图用Object.keys()获取File对象的键,你什么也得不到,我不知道是不是因为它意味着作为浏览器上文件的表示,但实际使用的是Blob,即二进制大对象文件,基本上是内存中的文件,如果您从端点获取数据,使用方法:

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

如果没有,你可以new Blob([response.data], {type: response.type}) 请注意,blob没有名称,您稍后将使用库处理

此库https://github.com/wkh237/react-native-fetch-blob和文档https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API可能很有用