无法读取未定义的属性“oneOfType”

Posted

技术标签:

【中文标题】无法读取未定义的属性“oneOfType”【英文标题】:Cannot read property 'oneOfType' of undefined 【发布时间】:2018-06-28 04:59:16 【问题描述】:

我是原生反应的新手。我想使用'react-native-camera'。我创建了一个新项目,正确安装了包(我知道是因为我已经做了三次以确保我没有做错任何事情),它显示了这个错误**无法读取未定义的属性 'oneOfType' ** 和它在这个包'react-native-camera'的index.js中。我找不到任何解决方案。我已经尝试过更改 gradle 版本,gradle 包装器属性,但这个问题与 gradle 无关。这是我的 App.js 中的代码。我知道代码不会产生这个错误,但我是 react-native 的新手,所以我可能遗漏了一些东西。 任何建议将不胜感激

 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'
  
  );

【问题讨论】:

请问您使用的是什么“react”和“react-native-camera”版本? 由于您使用过 RCTCamera,请注意,从 1.0.0 开始,RCCTamera 已被弃用,但如果您想使用它,请使用此文档链接 github.com/react-native-community/react-native-camera/blob/…。您是否根据该链接进行了更改?请确认。 显示你的 package.json 文件。 【参考方案1】:

感谢这个人,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';

【讨论】:

【参考方案2】:

如果有人通过搜索标题(我做过)找到了这个帖子,我会添加我的经验。有时在 TSX 中,导入会变得有点奇怪。对我有用的是使用这个导入:

import * as PropTypes from 'prop-types'

我也需要对 React 本身做同样的事情,否则它也不起作用:

import * as React from 'react'

到目前为止,这是我需要为其执行此操作的仅有的两个导入。

【讨论】:

以上是关于无法读取未定义的属性“oneOfType”的主要内容,如果未能解决你的问题,请参考以下文章

带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”

`无法读取未定义的属性(读取'组件')`

未捕获的类型错误:无法读取未定义的属性“区域”?

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

未捕获的类型错误:无法读取未定义的属性 toLowerCase

使用地图时反应'无法读取未定义的属性'