首页 文章

清除堆栈导航到React-Navigation

提问于
浏览
1

我的react-native应用程序包含一个包含多个StackNavigators的DrawerNavigator . 我的结构的简化示例如下所示

- Drawer
  - Stack 1
    - Screen 1
    - Screen 2
  - Stack 2
    - Screen 1
    - Screen 2

我的问题如下:我在Stack 1的屏幕1上 . 我使用Drawer导航到Stack 2的屏幕1 . 从Stack 2的屏幕1开始,我只需按一下按钮即可导航到Stack 2的屏幕2 . 然后我使用抽屉导航回堆栈1 . 我再次使用抽屉返回堆栈2 . 我现在在Stack 2的屏幕1上,但是 Headers 中有一个后退按钮,看起来我的当前屏幕刚刚放在旧堆栈的顶部 . 按下它导航我到Stack 2的屏幕2,然后再按它导航到Stack 2的屏幕1 .

当导航回抽屉中的堆栈时,我希望它能够使用新堆栈将我返回到堆栈中的第一个项目 - 也就是说,没有后退按钮 .

这种行为有望吗?如果是这样的话,当我从抽屉里导航时,我能做些什么来“清理”堆栈吗?

这是一个世博会的例子,只有极少的代码来重现我的结构和问题:https://snack.expo.io/rk2HV-HNf

1 回答

  • 0

    在反应导航中,如果您想要返回,而不是创建新屏幕,则需要使用 this.props.navigation.goBack() . 如果您使用 navigate 方法,它会创建一个新屏幕,因此返回按钮 .

    但是,还有另一种方式 . 在您的情况下,您不需要这个,但是您也可以使用 NavigationActions 从头开始定义堆栈并将其分派给重置导航堆栈 .

相关问题