React Navigation - 无法读取undefined的属性'navigate'

jac*_*711 3 javascript react-native react-navigation

我一直试图启动并运行反应导航,但是当我尝试将导航项目移动到他们自己的组件中时遇到了问题.

HomeScreen.js

import React, { Component } from 'react';

import {
  StyleSheet,
  View,
  Text
} from 'react-native';

import NavButton from '../components/NavButton'

class HomeScreen extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>
        Hello World
        </Text>

        <NavButton
        navigate={this.props.navigator}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center'
  }
});


export default HomeScreen;
Run Code Online (Sandbox Code Playgroud)

然后在NavButton组件中,我尝试导航到新屏幕.

 class NavButton extends Component {
  render() {
    return (
      <View>
        <Button
        title="Go to About"
        onPress={() => this.props.navigator.navigate('About')}
        />
      </View>
    );
  }
}
export default NavButton;
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误"无法读取未定义的属性'导航'.

这是我的Router.js文件.

import React from 'react';
import {StackNavigator} from 'react-navigation';

import HomeScreen from '../screens/HomeScreen'
import AboutScreen from '../screens/AboutScreen'


export const AppNavigator = StackNavigator({
  Home: {
    screen: HomeScreen
  },
  About: {
    screen: AboutScreen
  }
})
Run Code Online (Sandbox Code Playgroud)

Mat*_*Aft 7

如果重命名navigate={this.props.navigator}navigator={this.props.navigation},它应该工作,因为在NavButton您呼叫this.props.navigator.navigate.