React native Undefined不是一个对象(评估' _react3.default.PropType.shape')?

时间:2017-12-15 08:02:51

标签: javascript react-native

我正在使用react-native build android项目,并使用' Navigator'。当我看版本>应使用react@44.0:

import { Navigator } from 'react-native-deprecated-custom-components';

App.js

import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Image,
    Text,
    View
} from 'react-native';
import TabNavigator from 'react-native-tab-navigator';
import {
   Navigator
} from 'react-native-deprecated-custom-components';
import PropTypes from 'prop-types';
import Boy from './boy';

const instructions = Platform.select({
   ios: 'Press Cmd+R to reload,\n' +
   'Cmd+D or shake for dev menu',
   android: 'Double tap R on your keyboard to reload,\n' +
   'Shake or press menu button for dev menu',
});

export default class App extends Component {
   constructor(props) {
       super(props)
       this.state = {
          selectedTab: 'tab_polular'
       }
    }
   render() {
       return (
        <View style={styles.container}>
         <Navigator
             initialRoute = {
                 {component: Boy}
             }
             renderScene={(route, navigator) => {
                 let Component = route.component;
                 return <Component navigator={navigator} {...route.params}/>
             }}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
      flex: 1,
      backgroundColor: '#F5FCFF',
  },

得到此错误:

enter image description here

我看到这个与我类似的问题enter link description hereapp.js中添加此代码:

import PropTypes from 'prop-types

但错误也在这里!

如何解决错误!

3 个答案:

答案 0 :(得分:0)

您可以找到有关此问题here的一些信息,但我会尽量为您收集信息

但基本上,如果你的版本反应&gt; 16,您必须运行npm i --save prop-types,然后在您的代码中包含import PropTypes from 'prop-types'

如果您的反应版本&lt; 16,您必须从React导入PropTypes,如import React, { Component, PropTypes } from 'react';

您可以转到项目目录检查您的React版本,打开您的package.json文件,它应该在那里。应该看起来像这样:

"react": "16.0.0-alpha.6",

答案 1 :(得分:0)

  1. date("y-m-d HH:mi:ss", strtotime("$start_date +10 days")) date("Y-m-d", strtotime("$end_date -10 days")); //for minus

  2. Navigator.js文件更改为最新版本(来自facebook)

答案 2 :(得分:0)

好的,我找到了错误原因:

因为反应版本太高了。

我的项目反应版本==='16.0.0'

react: 16.0.0

如果解决了错误,反应版必须是:

"react": "^16.0.0-alpha.12"

然后:

react-native run ios