React Native undefined不是函数错误

时间:2016-12-13 08:56:07

标签: javascript android react-native

我是新手做出反应原生这是我第一次尝试反应本机我正在按照示例教程进行基本理解代码以及我遵循此raywenderlich's属性查找器示例的其他内容,同时实现第一个导航例子我正面临这个问题:

undefined is not a function (evaluating 'this.props.renderScene(route,this)')

在我用来运行应用程序的Android设备(Samsung J7)中

这是我的index.android.js

'use strict';
var React = require('react');
var ReactNative = require('react-native');
var SearchPage = require('./SearchPage');
var styles = ReactNative.StyleSheet.create({
      text: {
        color: 'black',
        backgroundColor: 'white',
        fontSize: 30,
        margin: 80
      },
      container: {
        flex: 1
      }
    });



class PropertyFinderApp extends React.Component {

  render() {
    return (

      <ReactNative.Navigator
      style={styles.container}
      renderScene={this.renderScene}
      initialRoute={{
        component: SearchPage,
        index:0,
        title:"home"
      }}/>
      );
  }

}
ReactNative.AppRegistry.registerComponent('PropertyFinder', function() { return PropertyFinderApp });`

和SearchPage.js文件(我正在使用的另一个组件):

'use strict';

import React, { Component } from 'react';
import {
    StyleSheet,
    Text,
    TextInput,
    View,
    TouchableHighlight,
    ActivityIndicator,
    Image
} from 'react-native';

var styles = StyleSheet.create({
    description: {
        marginBottom: 20,
        fontSize: 18,
        textAlign: 'center',
        color: '#656565'
    },
    container: {
        padding: 30,
        marginTop: 65,
        alignItems: 'center'
    },
    flowRight: {
        flexDirection: 'row',
        alignItems: 'center',
        alignSelf: 'stretch'
    },
    buttonText: {
        fontSize: 18,
        color: 'white',
        alignSelf: 'center'
    },
    button: {
        height: 36,
        flex: 1,
        flexDirection: 'row',
        backgroundColor: '#48BBEC',
        borderColor: '#48BBEC',
        borderWidth: 1,
        borderRadius: 8,
        marginBottom: 10,
        alignSelf: 'stretch',
        justifyContent: 'center'
    },
    searchInput: {
        height: 36,
        padding: 4,
        marginRight: 5,
        flex: 4,
        fontSize: 18,
        borderWidth: 1,
        borderColor: '#48BBEC',
        borderRadius: 8,
        color: '#48BBEC'
    }
});

export default class SearchPage extends Component {

    render() {
        return (
            <View style={styles.container}>
            <Text style={styles.description}>
            Search for houses to buy!
            </Text>
            <Text style={styles.description}>
            Search by place-name, postcode or search near your location.
            </Text>
            <View style={styles.flowRight}>
            <TextInput
            style={styles.searchInput}
            placeholder='Search via name or postcode'/>
            <TouchableHighlight style={styles.button}
            underlayColor='#99d9f4'>
            <Text style={styles.buttonText}>Go</Text>
            </TouchableHighlight>
            </View>
            <TouchableHighlight style={styles.button}
            underlayColor='#99d9f4'>
            <Text style={styles.buttonText}>Location</Text>
            </TouchableHighlight>
            </View>
            );
    }
}

module.exports = SearchPage;

我不知道我做错了什么因为我是初学者,所以任何帮助都会得到赞赏,而不是提前。

1 个答案:

答案 0 :(得分:1)

您必须编写import {NgModule} from "@angular/core"; import {CommonModule} from "@angular/common"; import {GlobalsService} from './globals.service' @NgModule({ providers: [GlobalsService], imports: [CommonModule] }) export class GlobalsModule { } 函数,请参阅以下示例:

renderScene