0

反应原生相机,onBarCodeRead 不起作用,我已经安装了 react-native-camera,代码触发相机,但即使使用 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);

在此处输入图像描述

4

1 回答 1

1

翻译

是不是你刚刚声明你的 barCodeTypes 错误?我的阅读二维码是这样的:

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

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

onBarCodeRead={this._bacr()}

进入这个:

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

或者:

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

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

于 2017-07-31T05:30:03.153 回答