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