undefined is not an object RCTCameraRollManager.saveToCameraRoll

我这是在使用 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 启动的项目有问题,这时候就没必要管它了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,795评论 4 61
  • 持续更新中...... 一套企业级的 UI 设计语言和 React 实现。 https://mobile.ant....
    日不落000阅读 11,166评论 0 35
  • 不知是何人在地上造出了一个个怪圈,接着万丈高楼拔地而起,一个文明的时代到来。 我只是这个世界的一粒尘埃,我在为我的...
    帅气的折耳猫阅读 1,643评论 0 0
  • 喜欢在夜里写东西已经是很多年前了,那时候懵懵懂懂,青涩的青春。写一些情窦初开看是表达爱情而现在看起来都怀疑人生,甚...
    牛牛哄哄阅读 1,693评论 0 0
  • 最近参加一个关于(自我发展心理学)社群的学习,老师开课提到了改变,于是我就想了很多,把自己的心里活动写下来了。 我...
    职钱巴阅读 1,216评论 0 0

友情链接更多精彩内容