我为此创造了一个零食:https://snack.expo.io/HJebCIoiM
问题非常简单,但我在GH和SO上发现的大多数问题都是相反的行为:在DrawerNavigator中的项目之间切换时,将StackNavigator重置为其初始路径 .
App结构
-
抽屉
-
路由器
-
第一个屏幕
-
第二个屏幕
-
其他画面
初始路由是 Router ,默认情况下显示 first screen .
当前行为
-
我从第一个屏幕进入第二个屏幕
-
我切换抽屉
-
我去了抽屉里的另一个屏幕
-
我回到路由器
-
显示第一个屏幕
预期行为:
在第5步中,它应显示第二个屏幕,因为这是我切换DrawerNavigator时的最后一个路径 .
我不明白为什么它不会保留堆栈的状态,只是让我回到之前的屏幕,而是将堆栈重置为其初始路由 .
令我更加困惑的是,许多人报告说这是他们应用的默认行为,但他们确实希望重置堆栈并且正在努力解决这个问题:
-
Resetting the navigation stack for the home screen (React Navigation and React Native)
-
How to reset the state of a StackNavigator nested in a DrawerNavigatior?
我不明白为什么它会在我的情况下一直重置它 . (因为你应该可以使用我在上面发布的Snack复制 .