React Native Android中的返回按钮遍历所有堆栈导航器

c9qzyr3d  于 2023-08-07  发布在  React
关注(0)|答案(1)|浏览(141)

在主屏幕上,有两个链接可导航到“屏幕A”和“屏幕B”。React导航代码如下。在Android中,用户从主屏幕->屏幕A导航,然后通过应用中的后退按钮(navigation.goBack())导航到主屏幕。**问题:**现在用户从主页->屏幕B导航。现在从屏幕B,当按下移动的的返回按钮时,用户被重定向到屏幕A,并且再次当按下移动设备的返回按钮时,用户被重定向到主页。正确的导航应该是屏幕B ->主页。

  1. <NavigationContainer>
  2. <Drawer.Navigator
  3. initialRouteName="Home"
  4. drawerContent={(props) => (
  5. <CustomDrawerContent drawerItems={drawerItemsMain} {...props} />
  6. )}
  7. >
  8. {drawerItemsMain.map((item) =>
  9. item.routes.map((route) => (
  10. <Drawer.Screen
  11. key={route.routeName}
  12. name={route.routeName}
  13. component={route.component}
  14. />
  15. ))
  16. )}
  17. <Drawer.Screen name="StackScreens" component={StackScreensNavigator} />
  18. </Drawer.Navigator>
  19. </NavigationContainer>;
  20. const StackScreensNavigator = createStackNavigator();
  21. const Drawer = createDrawerNavigator();
  22. function StackScreensNavigator() {
  23. return (
  24. <StackScreensNavigator.Navigator screenOptions={{ headerShown: false }}>
  25. <StackScreensNavigator.Screen name="ScreenA" component={ScreenA} />
  26. <StackScreensNavigator.Screen name="ScreenB" component={ScreenB} />
  27. </StackScreensNavigator.Navigator>
  28. );
  29. }

字符串

wd2eg0qa

wd2eg0qa1#

这里的问题是你用StackScreensNavigator来命名StackNavigatorDrawer.Screen的组件。您应该更改其中一个名称:

  1. const Stack = createStackNavigator();
  2. function StackScreensNavigator() {
  3. return (
  4. <Stack.Navigator screenOptions={{ headerShown: false }}>
  5. <Stack.Screen name="ScreenA" component={ScreenA} />
  6. <Stack.Screen name="ScreenB" component={ScreenB} />
  7. </Stack.Navigator>
  8. );
  9. }

字符串

相关问题