如何使用堆栈导航器通过按一下按钮从一个屏幕导航到另一个屏幕?

罗伊·吉夫

当我按下可触摸的不透明样式按钮时,我希望从登录屏幕导航到注册屏幕。我还想将初始屏幕设置为登录屏幕。但是,在尝试对他人有用的解决方案时,我会得到错误或意外的行为。下面是我的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>

按下注册按钮时,它将调用startRegistration函数。这是我的App.js类:

import React, {Component} from "react";
import {createStackNavigator, createAppContainer} from "react-navigation";

import Login from './src/components/login/Login';
import Registration from './src/components/login/Registration';

export default class FastAttendance extends Component {
        render() {
                return <AppContainer />
        }
}

const AppNavigator = createStackNavigator({
        Login: {screen: Login},
        Registration: {screen: Registration},
},
{
        initialRouteName: 'Login',
}
);

const AppContainer = createAppContainer(AppNavigator);

当我尝试运行此程序时,我的登录屏幕似乎正常,但是当我单击注册按钮时,出现错误“未定义不是对象(正在评估'this.props.navigation')”。如其他线程中所建议,我已将this.props删除到此代码中

navigation.navigate('Registration');

但是,当我单击注册按钮时,出现错误“找不到变量:导航”

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

 const AppNavigator = createStackNavigator({
    screen: Login,
    screen: Registration
 });

显然没有初始路径表明行为异常,并且在启动应用程序时,应用程序直接进入注册屏幕,但没有错误。我的createStackNavigator函数是否有问题或其他问题?

回归Mac

您需要将导航作为道具,例如:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React Native-将道具从一个屏幕传递到另一个屏幕(使用标签导航器进行导航)

我如何使用道具在本机反应中从一个屏幕导航到另一个屏幕?

在React Navigation 5中导航到另一个导航器中的屏幕

如何在SwiftUI Apple Watch App中从一个屏幕导航到另一个屏幕

如何导航到另一个屏幕

如何从一个屏幕导航到另一屏幕

如何在react native>中从一个屏幕导航到另一屏幕?

使用标题按钮使用react-navigaton导航到另一个屏幕

从一个屏幕导航到另一个屏幕时,未处理的承诺被拒绝

如何在Flutter中从一个屏幕导航到另一个屏幕(开始活动)并关闭当前屏幕(完成)

如何使用导航组件从一个活动导航到另一个活动并从堆栈中删除第一个活动?

如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图

反应导航-获取另一个导航器的下一个屏幕名称

我创建了一个自定义 FAB(浮动操作按钮),用于导航到各种屏幕。如何从堆栈导航器中删除滑动效果?

从不同导航器(React Native)的另一个屏幕返回时如何刷新屏幕?

如何使用Swift从一个View Controller导航到另一个

如何在Xamarin跨平台应用程序中从一个屏幕自动导航到另一个屏幕?

如何使用导航器将数据传递到Flutter中的上一个屏幕?(需要处理所有情况:滑动以返回,按下返回等)

使用导航组件从一个活动导航到另一个活动

如何在选项卡导航器的屏幕之间传递数据,在第一个屏幕中按下按钮而不被路由到第二个屏幕?

在React-Native中使用Drawer-Navigator导航到另一个导航器后,为什么会出现空白屏幕?

如何从一个片段导航到另一个从堆栈中清除其他片段?

导航到一个屏幕 tp 另一个

在 React Native Tab 导航中导航到另一个屏幕时,如何明确地退出屏幕?

如何使用动画从一个屏幕过渡到另一个屏幕

如何将参数传递到另一个选项卡导航屏幕

完成提取后,如何在本机反应中导航到另一个屏幕

如何在React Native中导航到类组件中的另一个屏幕

如何使这些组件在反应中导航到另一个屏幕?