当前位置: 首页 > 工具软件 > Roll.js > 使用案例 >

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

黄博艺
2023-12-01

本人只粗略了解标签语言,至于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方法同理,不再敖述

 类似资料: