NavigatorIOS问题

时间:2017-05-23 09:52:47

标签: react-native

嗨我在我的应用程序中使用NavigatorIOS时遇到了一些麻烦,它给了我错误:'undefined不是一个对象(评估'this.props.navigator.push')。 我试图看到一些例子,但我看不出错误,有人能帮帮我吗? 这是代码:

import React, { Component, PropTypes } from 'react';
import Dimensions from 'Dimensions';
import Menu from './Menu'
import {
  AppRegistry,
  StyleSheet,
  Image,
  TouchableHighlight,
  NavigatorIOS,
  FadeInView,
  Text,
  View
 } from 'react-native';


class Home extends React.Component {
  constructor(props, context) {
    super(props, context);
    this.onForward = this.onForward.bind(this);
  }

  onForward(Menu){
    this.props.navigator.push({
      component: Menu,
      title: "Menu",
      navigationBarHidden: true,
    });
  }

  render() {
    return (
      <View style={styles.container}>
        <Image
          style={styles.img}
          source={require('./img/scrittaNera.png')}
          onLoadStart={(e) => this.setState({loading: true})}
          />
        <TouchableHighlight style={styles.button} onPress={() =>     this.onForward()}>
          <Text style={styles.buttonText}>Get Inspired</Text>
         </TouchableHighlight>

      </View>
    );
  }
}

由于

1 个答案:

答案 0 :(得分:0)

在这种情况下,您需要将函数绑定到Component,这可以按如下方式完成:

<TouchableHighlight 
  style={styles.button} 
  onPress=this.onForward.bind(this)>
....
</TouchableHighlight>

此外,您需要确保主要组件包含在<NavigatorIOS>组件中。如:

import React, { Component, PropTypes } from 'react';
import { NavigatorIOS, Text } from 'react-native';

export default class NavigatorIOSApp extends Component {
  render() {
    return (
      <NavigatorIOS
        initialRoute={{
          component: MyScene,
          title: 'My Initial Scene',
        }}
        style={{flex: 1}}
      />
    );
  }
}