react-native-camera onBarCodeRead 不起作用

Posted

技术标签:

【中文标题】react-native-camera onBarCodeRead 不起作用【英文标题】:react-native-camera onBarCodeRead not working 【发布时间】:2017-11-25 04:07:41 【问题描述】:

我在使用 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);

【问题讨论】:

【参考方案1】:

我试过你的代码,它工作得很好。只需更改警报功能,它就会显示条形码的类型和数据。也尝试检查条形码类型是否支持https://github.com/lwansbrough/react-native-camera

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

【讨论】:

以上是关于react-native-camera onBarCodeRead 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

React-native-camera 没有出现在屏幕上

[RN] React Native 使用 react-native-camera 过程中报错 Found react-native-camera 'mlkit' but wasn

在应用关闭的情况下使用“react-native-camera”

react native 增加react-native-camera

gradlew assembleRelease 不适用于 react-native-camera

如何使用 react-native-camera 捕获图片