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

Posted

技术标签:

【中文标题】React native Undefined 不是对象(评估\'_react3.default.PropType.shape\')?【英文标题】:React native Undefined is not an object(evaluating'_react3.default.PropType.shape')?React native Undefined 不是对象(评估'_react3.default.PropType.shape')? 【发布时间】:2017-12-15 08:02:51 【问题描述】:

我正在使用 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 link description here 将此代码添加到app.js:

import PropTypes from 'prop-types

但是这里也有错误!

如何解决错误!

【问题讨论】:

【参考方案1】:

你可以找到一些关于这个问题的信息here,但我会尽力为你收集信息

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

如果你的 react import React, Component, PropTypes from 'react'; 那样从 React 导入 PropTypes

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

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

【讨论】:

我的反应版本=== '16.0.0',所以我应该使用import react, Component, PropTypes from 'react? 不,你应该使用第一个选项。你安装prop-types了吗? 是的,看这里package.jsonpackage【参考方案2】:

    npm install react-native-deprecated-custom-components --save

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

【讨论】:

【参考方案3】:

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

因为 react 版本太高了。

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

react: 16.0.0

如果解决了错误,react 版本必须是:

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

然后:

react-native run ios

【讨论】:

以上是关于React native Undefined 不是对象(评估'_react3.default.PropType.shape')?的主要内容,如果未能解决你的问题,请参考以下文章

undefined 不是一个函数('....data.map....' 附近)|React native

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

React native - undefined 不是一个对象('评估 this.props.navigation')

React Native Undefined 不是对象 - 地理位置

在React Native中创建android本机模块时,“undefined不是函数”

React Native Webview - undefined不是一个函数