javascript - React native 清除 Stack Navigator 堆栈

标签 javascript react-native react-navigation stack-navigator

我有几个屏幕可以一一浏览。屏幕1->屏幕2-屏幕3->屏幕4-首页

我想要的是当我回家时,应该清除以前的导航历史记录,并且后退按钮不应该转到最后一个导航屏幕,即屏幕 4。目前,当我在主屏幕上按下后退按钮时,它会带我回到堆栈中的最后一条路线是 screen4。我使用了下面的代码。它给了我错误,没有定义路由或关键主页。我已经在 Screens 类中定义了它。任何帮助,将不胜感激。

const resetAction = NavigationActions.reset({
  index: 0,                       
  actions: [NavigationActions.navigate({ routeName: 'Home' })],
});

onPress={() =>  this.props.navigation.dispatch(resetAction)}

最佳答案

在 V5 中,您可以使用

this.props.navigation.reset({
              index: 0,
              routes: [{name: 'Home'}],
            });
使用钩子(Hook)
import {useNavigation} from '@react-navigation/native';

const navigation = useNavigation();

navigation.reset({
        index: 0,
        routes: [{name: 'Events'}],
      });

关于javascript - React native 清除 Stack Navigator 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46340580/

相关文章:

javascript - 在静态布局中 react 导航选项卡导航器

react-native - 如何完全替换 react-navigation header ?

javascript - MDN 上 JavaScript 闭包的定义是不是错了?

javascript - 在 Django 中将页面下载为 JSON

javascript - Bootstrap 默认导航栏无法正常工作

javascript - ES6 解构,动态赋值

unit-testing - 模拟和监视键盘事件,并在 native 中开 Jest

react-native - 如何使用 onRequestPermissionsResult 处理 React Native Android 模块中的权限?

android - 保护 SD 卡并通过应用程序访问它

react-native - 单击 native react 时如何更改同一屏幕上的内容