反应原生相机,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);
答案 0 :(得分:1)
翻译
难道你刚刚宣布你的barCodeTypes错了吗? 我的阅读QR码是这样的:
barCodeTypes={[Camera.constants.BarCodeType.qr]}
它工作得很好。将barCodeTypes更改为此并再次尝试,并确保更改此:
onBarCodeRead={this._bacr()}
进入这个:
onBarCodeRead={this._bacr.bind(this)}
或:
onBarCodeRead={()=>{this._bacr()}}
否则,当您的相机读取QR码时,它将不会启动该功能。