反应本地相机,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);


enter image description here

最佳答案

翻译

您不是刚刚声明了barCodeTypes错误吗?
我的是这样阅读QR代码:

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


而且效果很好。将您的barCodeTypes更改为此,然后再试一次,并确保更改此内容:

onBarCodeRead={this._bacr()}


到这个:

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


要么:

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


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

10-08 14:47