Expo 图像选择器与 RN 图像选择器

时间:2021-01-03 10:27:22

标签: expo react-native-android react-native-web

我对 RN 很陌生。我知道这个问题正在重复,但我并没有完全得到我在那里寻找的答案。 所以我目前的项目使用 用于 web 的 expo 和用于 android 设置的 react-native cli。 我想在项目中添加一个图像选择器。 我看到了两个选项。

  1. RN-图像选择器
  2. 博览会图片选择器

我有一些问题和一些疑问!!

  1. RN-native-image picker 是否与网络兼容??
    • 我认为不是,我认为有两个原因,这个库使用了 Nativemodules, 不会被捆绑用于网络,并且当我运行时它会为 NativeModules 提供未定义的错误 web,而它在 android 上运行良好。
  2. 当我使用 react-native cli 创建 android 构建时,我应该使用 expo-image-picker 吗??
  • 构建不会出错,也不应该出错,但是当我点击上传图片时,应用程序 选择图像后崩溃。我阅读了文档和 github 以解决此问题。许多人指出 解决它的 ram 分配问题,这可以通过取消“不要保持活动”来解决 开发者选项,我还没试过。
  1. 同样在 web 上,以下代码片段返回 base64 作为 uri,这是默认行为吗??

我将此代码片段用于 expo-image-picker,当我使用 rn cli 构建应用程序时,它最终导致应用程序崩溃,但似乎不会导致 expocli build 出现问题。但我想将 expo 用于 web 和安卓版。 同样在网络上,以下代码片段将 base64 作为 uri 返回,这是默认行为吗??

const pickImage = async () => {
        try{
        let result = await ImagePicker.launchImageLibraryAsync({
            mediaTypes: ImagePicker.MediaTypeOptions.Images,
            allowsEditing: true,
            aspect: [4, 3],
            quality: 1,
            base64:false
        })
         if(!result.isCancelled)return result.uri ;
    }catch(err){
        console.log(err) ;
    }
       
 }

那么在这种情况下我该怎么办,使用 expo-image-picker 因为它似乎与所有平台/两者都兼容? 任何类型的输入都会有帮助!!

1 个答案:

答案 0 :(得分:1)

我不是 Expo 的粉丝,我没有这方面的经验,但我尝试回答您的问题。

<块引用>

RN-native-image picker 是否与网络兼容??

你说得对,图书馆只支持移动设备。

<块引用>

当我使用 react-native cli 创建 android 构建时,我应该使用 expo-image-picker 吗??

从 expo 文档中,我读到了那个,但我也知道有时 rn-cli 和 expo 有一些包差异,而这个 answer proves 就是这样。

<块引用>

Expo 永远不会锁定您,您可以随时“弹出”,您的项目将只是一个典型的原生项目,其中安装和配置了您的应用正在使用的 React Native 和 Expo SDK 包。

我不知道异常是什么,也许您在答案中提供的解决方案效果很好,但也许有一些依赖mismecc?例如 Web 应用程序上的 none 对象?或类似的东西。

<块引用>

同样在 web 上,以下代码片段返回 base64 作为 uri,这是默认行为吗??

这看起来像是一个错误,this issue on github 或许可以证实我的想法