React-Native - undefined不是对象(“evaluation _react3.default.PropTypes.shape”)

时间:2017-11-21 18:34:11

标签: javascript react-native

我正在阅读有关使用“Navigator”对象的React Native的教程,该教程在发布教程后显然已被弃用。有一些勘误表,据说可以修复代码,但仍然无法阻止上述错误。我已经搜索了关于这个主题的其他问题,但解决方案对我不起作用。

我已经安装了'react-native-deprecated-custom-components''prop-types',并将它们包含在下面的代码中。

以下是代码:

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View,
  Image,
  TouchableOpacity
} from 'react-native';
import { Navigator } from 'react-native-deprecated-custom-components';
import PropTypes from 'prop-types';
import Quote from './quote';

const zenImage = require ('./assets/zen_circle.png');

const navScene = {
  sceneContainer: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'stretch'
  }
}

export default class App extends Component<{}> {
  // Following two lines of code were included in the errata, but cause
  // an unexpected token error right on the first period below.
  // Navigator.sceneStyle = {navScene.sceneContainer};
  // sceneStyle={styles.sceneContainer};
  render() {
    return (
      <Navigator
        initialRoute={{ name: 'StartScreen' }}
        renderScene={(route, navigator) => {
          return (
            <View style={styles.container}>
              {/*<TouchableOpacity style={styles.button} onPress={() => {alert('I was pressed!')}}>
                <Image source={zenImage} style={styles.buttonImage} />
              </TouchableOpacity>
              <Text style={styles.readyText}>I'm ready to relax...</Text>*/}
              <Quote quoteText="Amazing quote!" quoteSource="- Great source!"/>
            </View>
          );
        }}
      />

    );
  }
}

感谢您提供的任何帮助!

3 个答案:

答案 0 :(得分:1)

卸载已安装的react-native-deprecated-custom-components组件,如下所示。

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

之后安装如下。

npm install --save https://github.com/facebookarchive/react-native-custom-components.git

现在运行您的应用程序,您的问题将得到解决。

答案 1 :(得分:1)

由于缓存的内容,大多数时候都会发生这些错误..

尝试此命令并检查:

cd android & gradlew clean & cd .. & rm -rf node_modules/ & npm cache clean --force & yarn install & react-native run-android

答案 2 :(得分:0)

遇到同样的问题,似乎他们还没有更新他们的npm包但他们的github分支有proptypes更改,把它扔进你的package.json:

"react-native-deprecated-custom-components": "github:facebookarchive/react-native-custom-components",