Javascript 如何使用stack navigator通过按键从一个屏幕导航到另一个屏幕?

Javascript 如何使用stack navigator通过按键从一个屏幕导航到另一个屏幕?,javascript,android,react-native,user-interface,react-navigation,Javascript,Android,React Native,User Interface,React Navigation,当按下可触摸的不透明样式按钮时,我希望从登录屏幕导航到注册屏幕。我还想将初始屏幕设置为登录屏幕。然而,当我尝试对他人有效的解决方案时,我会出现错误或意外行为。下面是我的LoginForm类的一部分,它是按下按钮的地方 import React, {Component} from 'react'; import { StyleSheet, View, TextInput, TouchableOpacity, Text} from 'react-native '; export default c

当按下可触摸的不透明样式按钮时,我希望从登录屏幕导航到注册屏幕。我还想将初始屏幕设置为登录屏幕。然而,当我尝试对他人有效的解决方案时,我会出现错误或意外行为。下面是我的LoginForm类的一部分,它是按下按钮的地方

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

export default class LoginForm extends Component {
    startRegistration() {
            this.props.navigation.navigate('Registration');
    }

<TouchableOpacity onPress={this.startRegistration} style={style
s.buttonRegister}>
           <Text style={styles.buttonText}>REGISTER</Text>
</TouchableOpacity>
然而,当我点击注册按钮时,我得到一个错误“找不到变量:导航”

我尝试的另一个变体是将App.js文件中的createStackNavigator函数更改为:

 const AppNavigator = createStackNavigator({
    screen: Login,
    screen: Registration
 });
显然,如果没有初始路径,则表明行为不正常,并且在启动应用程序时,应用程序会直接进入注册屏幕,但没有错误。我的createStackNavigator函数有什么问题吗?

而不是

{这是startRegistration}

{()=>this.startRegistration()}

另一种解决方案是在构造函数中绑定函数

this.startRegistration.bind(this)

而不是

{这是startRegistration}

{()=>this.startRegistration()}

另一种解决方案是在构造函数中绑定函数


this.startRegistration.bind(this)

您需要将导航作为道具传递,如下所示:

<MyListComponent navigation={this.props.navigation} />

您需要将导航作为道具传递,如下所示:

<MyListComponent navigation={this.props.navigation} />


试试这个
startRegistration=()=>{this.props.navigation.navigate('Registration');}
试试这个
startRegistration=()=>{this.props.navigation.navigation('Registration');}
是的,谢谢,我开始觉得这是个问题,但不知道如何通过它。然而,这段代码会去哪里?在App.js中或特定组件内部?您可以在任何组件中执行此操作,只要导航提供程序通过React的标准上下文Api传递给所有子组件。是的,谢谢。我开始认为这是错误的,但不知道如何传递它。然而,这段代码会去哪里?在App.js中或特定组件内部?您可以在任何组件中执行此操作,只要导航提供程序通过React的标准上下文Api传递给所有子组件。
<MyListComponent navigation={this.props.navigation} />