我正在开发一个React原生应用程序,用于学习.我现在正在使用React navigation实现导航.我正在使用堆栈导航.但我找不到办法从导航历史记录中删除上一个屏幕,并杀死该应用程序.

我是这样设置导航的.

const AppStack = createStackNavigator({
  Login: {
    screen: Login
  },
  Register: {
    screen: Register
  },
  Events: {
    screen: Events
  }
});

正如您在上面的代码中所看到的,我默认打开了登录屏幕.登录后,我像这样打开事件屏幕.

this.props.navigation.navigate('Events');

问题是,当我在"事件"页面上时,我可以看到导航栏中的"后退"按钮.当我按下按钮时,我被带回登录页面.

但我想要的是,登录后,我想从堆栈中删除登录页面.当我在活动页面上,当我点击后退按钮时,应用程序应该关闭.也许它没有后退按钮.在这种情况下,它就像第一个屏幕.我该怎么做?

推荐答案

当登录或注册成功后,您必须重置导航堆栈,如下所示:,

import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
    index: 0,
    actions: [NavigationActions.navigate({ routeName: 'Events' })],
});
this.props.navigation.dispatch(resetAction)

此外,在Event页中,如果你不想看到页眉,你必须添加一个静态方法.

static navigationOptions = navigation => ({
        header: null
});

希望对你有帮助.

React-native相关问答推荐

错误:无法解决模块missing-asset-registry-路径

条件呈现Else语句不会将样式应用于我的组件

如何在底部标签导航中添加顶部标签

到达安装依赖项时 EAS 构建错误

错误:图片:找不到 ID 为1的assets资源 .请判断图像源或打包器

React Native 将 base64 图像保存到相册

如何在带有decorator 的 react-native 0.56 (Babel 7) 中使用 mobx

你如何在生产模式下运行 react-native 应用程序?

iPhone 6s plus 上的字体大小

如何以编程方式在 react-native 中截屏

无法解析模块 react/lib/ReactUpdates

react-native android应用程序中的underlineColorAndroid is not a valid style property错误

使用 android 的应用中心分发时应用未安装错误

更改按钮 colored颜色 onPress(切换功能)

区别需要MainQueueSetup 和dispatch_get_main_queue?

react-native 中的倒数计时器

React Native Navigation 组件路由问题

无法解析模块react-navigation

如何在android studio中导入react native元素

/bin/sh: adb: 找不到命令