反应本地相机,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码时,不会启动该功能。