美文网首页
undefined is not an object RCTCa

undefined is not an object RCTCa

作者: Mr丶Tian | 来源:发表于2019-02-28 16:59 被阅读0次

    我这是在使用 React Native - CameraRoll将图片保存到本地相册包报的错误
    版本:react-native: 0.57.8
    react-native-image-zoom-viewer: 2.2.25

    发生这个问题主要有两个原因:
    一、CameraRoll 用法不对
    1、saveToCameraRoll(tag, type?)方法介绍

    (1)这个是 CameraRoll 的一个静态方法,作用是保存一张图片到相册。

    (2)参数 tag 是图片的地址,为字符串类型。其内容根据不同的设备也有所不同:

    • 在 Android 上:tag 是本地地址,例如:"file:///sdcard/img.png"
    • 在 iOS 上:tag 可以是 url、assets-library、内存图片中的一种。

    (3)参数 type 不是必须的,可选值是'photo' 或 'video'。用来表示存的是图片还是视频。不指定的话程序也会根据后缀自行判断。(结尾为 .mov 或 .mp4 为视频,其它为图片)
    具体可以参考https://reactnative.cn/docs/cameraroll/

    2、 准备工作

    (1)如果要在 iOS 上使用这个模块,我们首先要链接 RCTCameraRoll 库。进入到工程项目中的 node_module/react-native/Libraries/CameraRoll


    image.png

    (2)把 RCTCameraRoll.xcodeproj 添加到在项目工程的 Liberaries 文件夹下


    image.png
    (3)在 Build Phases -> Link Binary With Libraries 里添加 libRCTCameraRoll.a
    image.png

    (4)由于苹果安全策略更新,还需要在 Info.plist 配置请求照片相的关描述字段(Privacy - Photo Library Usage Description)


    image.png
    二、当我把上面所有的东西都配置完了之后,在 react-native 启动的模拟器里还是一保存就报错,之后查了各种资料没有找到解决办法,索性我就直接用 Xcode 打包试了一下,没发生任何问题。其实已经可以了,而且我还用真机试了,也没问题,这只能说明 react-native 启动的项目有问题,这时候就没必要管它了。

    相关文章

      网友评论

          本文标题:undefined is not an object RCTCa

          本文链接:https://www.haomeiwen.com/subject/zrkkuqtx.html