我是新来的本地人。我想使用“ react-native-camera”。我创建了一个新项目,正确安装了软件包(我知道,因为我做了三次以确保我没有做错任何事),并且显示了此错误**无法读取未定义的属性'oneOfType'**在此包“ react-native-camera”的index.js中。我找不到任何解决方案。我已经尝试过更改gradle版本,可以使gradle包装器具有所有属性,但是此问题与gradle不相关。这是我的App.js中的代码。我知道代码不会产生此错误,但是我是本机反应的新手,所以也许我缺少了一些东西。 任何建议将不胜感激
import React, {Component} from 'react';
import {
Text,
View,
StyleSheet
} from 'react-native';
import Camera from 'react-native-camera';
export default class BarcodeScan extends Component {
constructor(props) {
super(props);
this.state = {
qrcode: ''
}
}
onBarCodeRead = (e) => this.setState({qrcode: e.data});
render () {
return (
<View style={styles.container}>
<Camera
style={styles.preview}
onBarCodeRead={this.onBarCodeRead}
ref={cam => this.camera = cam}
aspect={Camera.constants.Aspect.fill}
>
<Text style={{
backgroundColor: 'white'
}}>{this.state.qrcode}</Text>
</Camera>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
},
preview: {
flex: 1,
justifyContent: 'flex-end',
alignItems: 'center'
}
});
答案 0 :(得分:0)
感谢这个人https://github.com/dwicao/react-native-panel/issues/4
我可以通过替换“ react-native-camera”包的index.js中的以下代码来解决此问题。
替换
import React, { Component, PropTypes } from 'react';
与
import React, { Component } from 'react';
import PropTypes from 'prop-types';
答案 1 :(得分:0)
如果有人通过搜索标题找到了这个主题(我这样做了),我将加我的经验。有时使用TSX,导入会变得有些奇怪。对我有用的是使用此导入:
.constructor
我还需要对React本身做同样的事情,否则它也不起作用:
const bar = (() => {
function Bar(){}
const bar = new Bar();
return bar;
})();
// now Bar is out of scope
// but you can still reference it because you have an instance:
const Bar = bar.constructor;
console.log(Bar);
到目前为止,这是我要做的仅有的两次导入。