使用 React Native Web 时如何选择文件?

cat*_*use 5 reactjs react-native react-native-web

我们正在构建一个使用 react native 的应用程序,但我们不会为第一个版本发布本机版本。我们仍在使用网络(react-native-web为此使用)。

但是,我坚持使用文件上传功能,因为要使用 React Native 组件,我们需要执行本机权限(但我们不是在本机部署它,因此浏览器中没有这样的东西)。但同时,我无法使用简单的,<input type=“file” />因为 UI 是建立在 react 本机特定的标签上的(例如<View>/<Image>等)

这个问题有方法解决吗?

tja*_*dli 6

这是一个对你有用的建议!

看到在 react-native-web 中,您可以指定特定于平台的文件,如果您可以创建一个单独的上传文件组件, 'fileUploader.web.js' 并且可以将其与此包结合使用 https://github.com/react-dropzone/react-dropzone

<Dropzone ref="_dp" onDrop={uploadPhotos}>
    <Text>TEXT HERE</Text> // you can remove this completely
</Dropzone>
Run Code Online (Sandbox Code Playgroud)

您实际上可以将 dropzone 设置为完全不可见,并使用以下命令触发文件选择器:

this.refs._dp.open()
Run Code Online (Sandbox Code Playgroud)

请记住,这只处理网络平台,您需要fileUploader为其他平台创建一个