-1

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

1 回答 1

1

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

alert("Barcode Found! \nType: " + e.type + "\nData: " + e.data);
于 2017-11-25T05:42:12.427 回答