Zuha Karim
Zuha Karim

Reputation: 279

Cannot read property 'oneOfType' of undefined

I am new to react native. I want to use 'react-native-camera'. I created a new project , installed the package correctly(I know because I have done it thrice to make sure that i'm not doing anything wrong) and it shows this error **Cannot read property 'oneOfType' of undefined ** and it is in index.js of this package 'react-native-camera'. I can't find any solution. I have tried changing gradle version, gradle wrapper properties everything that I could but this issue is not related to gradle. This is the code in my App.js. I know code isn't generating this error but i am new to react-native so maybe i'm missing something. Any suggestion would be appreciated

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

Upvotes: 4

Views: 5671

Answers (2)

Mike Viens
Mike Viens

Reputation: 2507

In case someone finds this thread by searching on the the title (which I did), I will add my experience. Sometimes with TSX, imports get a little weird. What worked for me was using this import:

import * as PropTypes from 'prop-types'

I also need to do the same thing with React itself or it does not work either:

import * as React from 'react'

So far, these are the only two imports I need to do this for.

Upvotes: 0

Zuha Karim
Zuha Karim

Reputation: 279

Thanks to this guy , https://github.com/dwicao/react-native-panel/issues/4
I was able to solve this issue by replacing following in index.js of package 'react-native-camera'.

Replace

  import React, { Component, PropTypes } from 'react';

with

 import React, { Component } from 'react';
 import PropTypes from 'prop-types';

Upvotes: 1

Related Questions