我的React导航设置有一个常见问题。
我在一个DrawerNavigator中嵌套了多个SwitchNavigator,它位于一个SwitchNavigator中。是啊,一团糟。
假设我有一个包含3个堆栈的DrawerNavigator : HomeStack (主路由、配置文件路由、历史路由)、SearchStack (列表路由、详细路由)和CartStack (查看路由、PaymentMethod路由、确认路由)。
如果用户浏览主页堆栈(Home -> profile ->历史记录),然后转到SearchStack,这自然会指向CartStack,如果我尝试将用户带到HomeStack,导航器会将他带到堆栈的顶部屏幕(在本例中是历史记录)。
当用户尝试使用抽屉导航时,这是一个问题,因为导航器总是将用户带到堆栈的顶部屏幕。这可能是一种自然行为,但有没有办法在用户每次按下抽屉里的物品时覆盖它或重置堆栈?哪种方法是最好的?
我尝试使用StackActions将用户从确认路由带到主页,但得到一个错误(“没有为...定义路由”)。
--
主导航是这样的(在屏幕之间切换没有问题):
const AppContainer = createAppContainer(
createSwitchNavigator(
{
AuthLoading: LoadingScreen,
AuthStack: AuthNavigation,
CoachApp: CoachNavigation,
StudentApp: StudentNavigation
},
{
initialRouteName: 'AuthLoading'
}
)
);CoachNavigation看起来像这样:
export default CoachNavigation = createDrawerNavigator(
{
DrawerHome: { screen: HomeStack },
DrawerSearch: { screen: SearchStack },
DrawerCart: { screen: CartStack },
}
)任何建议都会有所帮助。提前谢谢,如果我的解释不是很好,很抱歉。
发布于 2020-04-28 12:51:35
我不得不用onpress =>导航(“父堆栈”)的自定义按钮来替换抽屉内容/项目。
https://reactnavigation.org/docs/drawer-navigator/#drawercontent
https://stackoverflow.com/questions/61216579
复制相似问题