2017-11-25 2 views
0

Ich habe Probleme mit onBarCodeRead mit reaktiven nativen.reagieren-native-Kamera onBarCodeRead funktioniert nicht

Das erwartete Verhalten: App-Konsolen protokollieren Barcode-Typ und Daten.

Tatsächliches Verhalten: Apps öffnen nur die Kamera, und _onBarCodeRead wird nie aufgerufen.

Jede Erklärung wäre satisfatory. Hier

ist der Code:

'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); 

Antwort

1

ich Ihren Code versucht, und es funktioniert gut. Ändern Sie einfach die Alarmfunktion, so dass der Typ und die Daten des Barcodes angezeigt werden. Versuchen Sie auch, den Barcodetyp zu prüfen, wenn dieser unterstützt wird oder nicht https://github.com/lwansbrough/react-native-camera

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