我可以让react-native-camera模块访问相机并保存图像。但是,我无法弄清楚如何向用户显示此图像。
我正在尝试:
我在这里拍照。这会在.jpg
assets-library://....
文件的内容
_takePicture() {
var self = this;
this.refs.cam.capture(function(err, data) {
this.setState({photo: data});
console.log(err, data);
// data is "assets-library://asset/asset.JPG?id=########-####-####-####-##########&ext=JPG"
console.log('just took a picture');
});
}
但是,如果我尝试渲染图像:
render: function() {
return(
<Image style={styles.image} source={{uri: this.state.photo}}/>
);
}
我收到此错误:
No suitable image URL loader found for assets-library://asset/asset.JPG?id=.......
如何拍照,将其保存到我的应用程序的当前state
并进行渲染?
答案 0 :(得分:26)
解决方案是启用save to disk option与保存到cameraRoll选项:
<Camera
captureTarget={Camera.constants.CaptureTarget.disk}
// Rest of Camera options here
/>
答案 1 :(得分:1)
所以,我在一段时间内使用了@YPCrumble答案。
但现在我必须将图像保存在相机胶卷中。
如果有人想继续保存相机胶卷,您必须手动链接RTCCameraRoll库。
此处链接库的文档:
https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking
这很简单:
您可以在自己的网站上找到RCTImage.xcodeproj node_modules /反应天然/库/ CameraRoll
将此文件拖放到XCode项目的Libraries文件夹中。
之后,单击主项目,然后在右侧窗格中找到 “建立阶段”。
在“Link Binary With Libraries”中,拖放调用的文件 左侧窗格中的“libRCTCameraRoll.a” - &gt;图书馆 - &gt; RTCCameraRoll.xcodeproj - &gt;产品