Javascript camera.takePictureAsync(选项)不是react native camera中的函数
您好,我是react native的新用户,我刚刚用相机创建了我的第一个react native项目,没有世博会。 我使用Javascript camera.takePictureAsync(选项)不是react native camera中的函数,javascript,android,react-native,react-native-camera,Javascript,Android,React Native,React Native Camera,您好,我是react native的新用户,我刚刚用相机创建了我的第一个react native项目,没有世博会。 我使用npm install react native camera安装了它,然后将它链接到react native link react native camera。 相机运行成功,但当我触发快照按钮时,它出现了如下错误 {[TypeError:camera.takePictureAsync不是函数。(在“camera.takePictureAsync(选项)”中,“camera
npm install react native camera
安装了它,然后将它链接到react native link react native camera
。
相机运行成功,但当我触发快照按钮时,它出现了如下错误
{[TypeError:camera.takePictureAsync不是函数。(在“camera.takePictureAsync(选项)”中,“camera.takePictureAsync”未定义)]
│ 电话号码:131480,
│ 栏目:72,
└ 源URL:'}
这是我的代码看起来像
import React,{useRef}来自“React”
从“react native”导入{视图、文本、样式表、TouchableOpacity}
从“react native camera”导入{RNCamera}
函数PlayWithCamera(){
const-camera=useRef(空)
const takePicture=async()=>{
试一试{
const options={quality:0.5,base64:true};
const data=wait camera.takePictureAsync(选项);
log(data.uri,我也遇到了同样的问题。解决方案是返回到类组件而不是函数组件
<Camera
ref={ref => (this.cameraEl = ref)}
style={{ flex: 1 }}
type={Camera.Constants.Type.front}
/>
(this.cameraEl=ref)}
style={{flex:1}}
类型={Camera.Constants.type.front}
/>
我让react本机摄像头与功能组件一起运行。以下是:
function CameraComponent(props){
let camera;
async function takePicture(){
if( camera ) {
const options = {quality: 0.5};
const data = await camera.takePictureAsync(options);
console.log(data.uri);
}
}
return(
<View>
<RNCamera
ref={ref => (camera = ref)}
/>
</View>
);
}
功能摄像机组件(道具){
让相机;
异步函数takePicture(){
如果(照相机){
const options={quality:0.5};
const data=wait camera.takePictureAsync(选项);
log(data.uri);
}
}
返回(
(摄像机=ref)}
/>
);
}
您应该使用camera.current.takePictureAsync(选项);
而不是camera.takePictureAsync(选项);
const-cameraEl=useRef(null);
异步函数takePicture(){
console.log('takePicture');
if(摄像机当前){
const options={quality:0.5,base64:true};
const data=wait cameraEl.current.takePictureAsync(选项);
log(data.uri);
}
}
{
//this.camera=ref;
// }}
ref={cameraEl}
hi功能组件中的正确方式应为
const ref=React.createRef();
const takePicture=async()=>{
如果(参考电流){
const options={quality:0.5,base64:true};
const data=wait ref.current.takePictureAsync(选项);
log(data.uri);
}
};
返回(
{
控制台日志(条形码);
}}
/>
断裂
);
你能解释一下const-camera=useRef(null)
的作用吗。这将如何使camera
任何具有takePictureAsync
等属性的东西成为可能const-camera=useRef(RNCamera)
?我尝试将其更改为const-camera=useRef(RNCamera)
但仍然不能工作相同的错误?或者其他什么,我只是再次读取错误…在“camera.takePictureAsync(选项)”中,“camera.takePictureAsync”未定义)
这很奇怪,是的,它仍然得到相同的错误:/。
const cameraEl = useRef(null);
async function takePicture() {
console.log('takePicture');
if (cameraEl.current) {
const options = { quality: 0.5, base64: true };
const data = await cameraEl.current.takePictureAsync(options);
console.log(data.uri);
}
}
<RNCamera
// ref={ref => {
// this.camera = ref;
// }}
ref={cameraEl}