React native 未定义的扫描代码和错误不是对象

React native 未定义的扫描代码和错误不是对象,react-native,React Native,我想设置EAN13代码的扫描,我正在使用react native camera软件包,但我遇到了一个问题** TypeError:undefined不是对象(正在评估) “\u reactiveCamera.Camera.constants') **我希望你能帮我找出我代码中的错误 如果你能指导我,帮助我,那就太好了,谢谢你 import React, { Component } from 'react'; import { Text, View, Alert, TouchableOpacity

我想设置EAN13代码的扫描,我正在使用react native camera软件包,但我遇到了一个问题**

TypeError:undefined不是对象(正在评估) “\u reactiveCamera.Camera.constants')

**我希望你能帮我找出我代码中的错误

如果你能指导我,帮助我,那就太好了,谢谢你

import React, { Component } from 'react';
import {
Text,
View,
Alert,
TouchableOpacity,
Image
} from 'react-native';
import {Camera} from 'react-native-camera';
import styles from '../../../assets/styles'

export default class Ean13 extends Component {
  constructor(props) {
    super(props);
      this.handleTourch = this.handleTourch.bind(this);
        this.state = {
          torchOn: false
        }
      }
      onBarCodeRead = (e) => {
        Alert.alert("Barcode value is" + e.data, "Barcode type is" + e.type);
      }
      render() {
        return (
          <View style={styles.container}>
            <Camera
            style={styles.preview}
            torchMode={this.state.torchOn ? Camera.constants.TorchMode.on : Camera.constants.TorchMode.off}
            onBarCodeRead={this.onBarCodeRead}
            ref={cam => this.camera = cam}
            aspect={Camera.constants.Aspect.fill}
            >
              <Text style={{
              backgroundColor: 'white'
              }}>BARCODE SCANNER</Text>
            </Camera>
            <View style={styles.bottomOverlay}>
              <TouchableOpacity onPress={() => this.handleTourch(this.state.torchOn)}>
                <Image style={styles.cameraIcon}
                     source={this.state.torchOn === true ? require('../../../assets/images/flash.png') : require('../../../assets/images/no-flash.png')} />
              </TouchableOpacity>
            </View>
          </View>
        )
      }
handleTourch(value) {
  if (value === true) {
      this.setState({ torchOn: false });
    } else {
      this.setState({ torchOn: true });
    }
  }
}
import React,{Component}来自'React';
进口{
文本,
看法
警觉的,
可触摸不透明度,
形象
}从“反应本机”;
从“react native Camera”导入{Camera};
从“../../../assets/styles”导入样式
导出默认类Ean13扩展组件{
建造师(道具){
超级(道具);
this.handleTourch=this.handleTourch.bind(this);
此.state={
托尔肯:错
}
}
onBarCodeRead=(e)=>{
预警。预警(“条码值为“+e.data”,条码类型为“+e.type”);
}
render(){
返回(
this.camera=cam}
aspect={Camera.constants.aspect.fill}
>
条形码扫描器
this.handleTourch(this.state.torchOn)}>
)
}
handleTourch(价值){
如果(值===true){
this.setState({torchOn:false});
}否则{
this.setState({torchOn:true});
}
}
}
您已经使用了摄像头

这应该是我的相机

import { RNCamera } from 'react-native-camera';
并从中读取常量

RNCamera.constants.TorchMode.on
检查文件

我按照你的答案@Guruparan Giritharan更改了我的代码,但我仍然有一个“未定义的不是函数”,所以我尝试了你给我的链接的代码(我正在测试所有内容,然后我将更改我的应用程序的设置),但即使使用文档的链接,我也有一个黄色错误。。。为什么呢

**>[未处理的承诺拒绝:TypeError:

CameraManager.CheckIfRecordAudioPermissionsRedefined不是 功能(在 “CameraManager.CheckIfRecordAudioPermissionsRedefined()”, “CameraManager.CheckIfRecordAudioPermissionsRedefined”未定义)]**

import React,{PureComponent}来自'React';
从“react native”导入{Text,TouchableOpacity,View};
从“react native camera”导入{RNCamera};
从“../../../assets/styles”导入样式;
导出默认类ExampleApp扩展PureComponent{
render(){
返回(
{
this.camera=ref;
}}
style={style.preview}
类型={RNCamera.Constants.type.back}
flashMode={RNCamera.Constants.flashMode.on}
androidCameraPermissionOptions={{
标题:“使用相机的权限”,
信息:“我们需要您的许可才能使用您的相机”,
buttonPositive:“Ok”,
按钮否定:“取消”,
}}
androidRecordAudioPermissionOptions={{
标题:“使用录音的许可”,
消息:“我们需要您的许可才能使用您的音频”,
buttonPositive:“Ok”,
按钮否定:“取消”,
}}
onGoogleVisionBarcodesDetected={({barcodes})=>{
控制台日志(条形码);
}}
/>
断裂
);
}
takePicture=async()=>{
如果(这个相机){
const options={quality:0.5,base64:true};
const data=wait this.camera.takePictureAsync(选项);
log(data.uri);
}
};
}

根据您的回答,我可以知道您安装的版本吗?@Kimako检查这个问题“react native camera”:“^3.40.0”,好的,我会检查您的链接,谢谢。我不明白为什么,但是。。。我先做了“npm卸载react native camera”,然后又做了“npm i react native camera”,它可以正常工作。。。真奇怪!!!也许它有一些缓存,比如有本机代码的库
import React, { PureComponent } from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
import { RNCamera } from 'react-native-camera';
import styles from '../../../assets/styles';

export default class ExampleApp extends PureComponent {
  render() {
    return (
      <View style={styles.container}>
        <RNCamera
          ref={ref => {
            this.camera = ref;
          }}
          style={styles.preview}
          type={RNCamera.Constants.Type.back}
          flashMode={RNCamera.Constants.FlashMode.on}
          androidCameraPermissionOptions={{
            title: 'Permission to use camera',
            message: 'We need your permission to use your camera',
            buttonPositive: 'Ok',
            buttonNegative: 'Cancel',
          }}
          androidRecordAudioPermissionOptions={{
            title: 'Permission to use audio recording',
            message: 'We need your permission to use your audio',
            buttonPositive: 'Ok',
            buttonNegative: 'Cancel',
          }}
          onGoogleVisionBarcodesDetected={({ barcodes }) => {
            console.log(barcodes);
          }}
        />
        <View style={{ flex: 0, flexDirection: 'row', justifyContent: 'center' }}>
          <TouchableOpacity onPress={this.takePicture.bind(this)} style={styles.capture}>
            <Text style={{ fontSize: 14 }}> SNAP </Text>
          </TouchableOpacity>
        </View>
      </View>
    );
  }

  takePicture = async () => {
    if (this.camera) {
      const options = { quality: 0.5, base64: true };
      const data = await this.camera.takePictureAsync(options);
      console.log(data.uri);
    }
  };
}