反应原生相机,onBarCodeRead无法正常工作

时间:2017-07-19 19:50:09

标签: javascript android react-native react-native-android react-native-camera

反应原生相机,onBarCodeRead无法正常工作,我安装了react-native-camera,代码触发了cammera,但即使使用onBarCodeRead函数也无法读取或发现条形码。 以下是我的代码和屏幕截图

 import React, { Component } from 'react';
 import { Image, Platform } from 'react-native';
 import { connect } from 'react-redux';
 import { Actions } from 'react-native-router-flux';
 import { Container, Header, Title, Content, Button, Icon, List, ListItem, Text, Footer, Left, Right, Body } from 'native-base';

 import styles from './styles';
 import { UserLogin, username,password} from '../../actions/index.js';
 import Spinner from 'react-native-loading-spinner-overlay';
 import Camera from 'react-native-camera';
 const glow2 = require('../../../images/glow2.png');

 const backgroundImage = require('../../../images/glow2.png');
 const logo = require('../../../images/logo.png');
 class Qrcamera extends Component {
  render() {
   return (
     <Container style={{ backgroundColor: '#fff' }}>
       <Image source={glow2} style={styles.container} >

      <Header style={{ backgroundColor: '#004774' }} >
        <Left>
          <Button transparent onPress={this.props.openDrawer} >
            <Icon active name="menu" style={{ fontSize: 30, lineHeight: 32 }} />
          </Button>
        </Left>
        <Body>
          <Title>Scanner</Title>
        </Body>
        <Right />

      </Header>

      <Content padder style={{ backgroundColor: 'transparent' }}>

        <Camera
      ref={(cam) => {
        this.camera = cam;
      }}
      style={styles.preview}
      aspect={Camera.constants.Aspect.fill}
      onBarCodeRead={this._bacr()}
      barCodeTypes={['org.iso.QRCode']}
      >

    </Camera>


      </Content>


    </Image>
    </Container>
  );
}
 _bacr(){
    alert("hey sported barcode!");
 }

}

export default connect()(Qrcamera);

enter image description here

1 个答案:

答案 0 :(得分:1)

翻译

难道你刚刚宣布你的barCodeTypes错了吗? 我的阅读QR码是这样的:

barCodeTypes={[Camera.constants.BarCodeType.qr]}

它工作得很好。将barCodeTypes更改为此并再次尝试,并确保更改此:

onBarCodeRead={this._bacr()}

进入这个:

onBarCodeRead={this._bacr.bind(this)}

或:

onBarCodeRead={()=>{this._bacr()}}

否则,当您的相机读取QR码时,它将不会启动该功能。