Camera 反应本机摄像头onBarCodeRead不工作

Camera 反应本机摄像头onBarCodeRead不工作,camera,barcode,react-native-camera,Camera,Barcode,React Native Camera,我对使用react native的onBarCodeRead有问题 预期行为:应用程序控制台记录条形码类型和数据 实际行为:应用程序只需打开摄像头,就不会调用_onBarCodeRead 任何解释都是令人满意的 代码如下: 'use strict'; import React, { Component } from 'react'; import { AppRegistry, Dimensions, StyleSheet, Text, TouchableHighlight,

我对使用react native的onBarCodeRead有问题

预期行为:应用程序控制台记录条形码类型和数据

实际行为:应用程序只需打开摄像头,就不会调用_onBarCodeRead

任何解释都是令人满意的

代码如下:

'use strict';
import React, { Component } from 'react';
import {
  AppRegistry,
  Dimensions,
  StyleSheet,
  Text,
  TouchableHighlight,
  View
} from 'react-native';
import Camera from 'react-native-camera';

class camera_app extends Component {

  constructor(props) {
    super(props);
    this.state = {
      showCamera: true,
    };
  }

  renderCamera = () => {
    if(this.state.showCamera) {
      return (
        <Camera
          ref={(cam) => {
            this.camera = cam;
          }}
          style={styles.container}
          aspect={Camera.constants.Aspect.fill}
          onBarCodeRead={this._onBarCodeRead}>
        </Camera>
      );
    } else {
      return (
        <View></View>
      );
    }
  }

  render() {
    return (
      this.renderCamera()
    );
  }

  _onBarCodeRead = (e) => {
    this.setState({showCamera: false});
    alert("Barcode Found!",
          "Type: " + e.type + "\nData: " + e.data);
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "transparent",
  },
});

AppRegistry.registerComponent('rn_camera', () => camera_app);
“严格使用”;
从“React”导入React,{Component};
进口{
评估学,
尺寸,
样式表,
文本,
触控高光,
看法
}从“反应本机”;
从“react native Camera”导入相机;
类camera_应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
镜头:没错,
};
}
renderCamera=()=>{
if(this.state.showCamera){
返回(
{
这个摄像头=凸轮;
}}
style={style.container}
aspect={Camera.constants.aspect.fill}
onBarCodeRead={this.\u onBarCodeRead}>
);
}否则{
返回(
);
}
}
render(){
返回(
这个是renderCamera()
);
}
_onBarCodeRead=(e)=>{
this.setState({showCamera:false});
警报(“找到条形码!”,
“类型:”+e.Type+“\n数据:”+e.data);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
辩护内容:“中心”,
对齐项目:“中心”,
背景色:“透明”,
},
});
AppRegistry.registerComponent('rn_camera',()=>camera_app);

我试过你的代码,效果很好。只需更改警报功能,它将显示条形码的类型和数据。如果支持或不支持条形码类型,请尝试检查条形码类型

alert("Barcode Found! \nType: " + e.type + "\nData: " + e.data);