我为此创造了一个零食:https://snack.expo.io/HJebCIoiM

问题非常简单,但我在GH和SO上发现的大多数问题都是相反的行为:在DrawerNavigator中的项目之间切换时,将StackNavigator重置为其初始路径 .

App结构

  • 抽屉

  • 路由器

  • 第一个屏幕

  • 第二个屏幕

  • 其他画面

初始路由是 Router ,默认情况下显示 first screen .

当前行为

  • 我从第一个屏幕进入第二个屏幕

  • 我切换抽屉

  • 我去了抽屉里的另一个屏幕

  • 我回到路由器

  • 显示第一个屏幕

预期行为:

在第5步中,它应显示第二个屏幕,因为这是我切换DrawerNavigator时的最后一个路径 .

我不明白为什么它不会保留堆栈的状态,只是让我回到之前的屏幕,而是将堆栈重置为其初始路由 .

令我更加困惑的是,许多人报告说这是他们应用的默认行为,但他们确实希望重置堆栈并且正在努力解决这个问题:

我不明白为什么它会在我的情况下一直重置它 . (因为你应该可以使用我在上面发布的Snack复制 .