ReactNative警告:CameraRoll.getPhotos(tag, success, error) is deprecated...

本人只粗略了解标签语言,至于html5,js,css啥的完全外行。我认为ReactNative是移动App开发的趋势,作为一个iOS开发工程师,深知原生开发的局限性,从今天起,像个孩子一样学习RN。使用教材《React Native入门与实践》

解决完上篇问题ReactNative报错:undefined is not an object(evaluating ‘RCTCameraRollManager.getPhotos’)
运行模拟器,发现下面弹了两个警告

CameraRoll.getPhotos(tag, success, error) is deprecated.Use the returned Promise instead
 CameraRoll.saveImageWithTag(tag, success, error) is deprecated.Use the returned Promise instead

我看了下自己ReactNative版本为0.23,而教材大概是0.1x,去官方中文网站查看文档,发现接口已经变更,getPhotos及saveImageWithTag只接受一个参数,官方示例说会返回一个Promise。我一脸懵逼,这结构该怎么写,示例很明显残缺不全,经过各种探索,得出结果:

原书写方式(0.1x):

        CameraRoll.getPhotos(fetchParams,function(data){

                console.log(data);
                var edges = data.edges;
                var photos = [];
                for (var i in edges) {
                    photos.push(edges[i].node.image.uri);
                }
                _that.setState({
                    photos:photos
                });


        },function(){
            alert('获取照片失败');
        });

新书写方式(0.23)

CameraRoll.getPhotos(fetchParams).done(function(data){
                console.log(data);
                var edges = data.edges;
                var photos = [];
                for (var i in edges) {
                    photos.push(edges[i].node.image.uri);
                }
                _that.setState({
                    photos:photos
                });
        },function(err){

            alert('获取照片失败');

        });

saveImageWithTag方法同理,不再敖述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值