0Pricing
React Native Academy · Lektion

Drawer-Navigator und verschachtelte Navigatoren

Richten Sie einen Drawer-Navigator ein, verschachteln Sie einen Stack innerhalb eines seiner Screens und verstehen Sie, wie verschachtelte Navigatoren mit Header und Zurück-Schaltfläche interagieren.

Drawer-Navigator und verschachtelte Navigatoren ist eine kostenlose React Native Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Native Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Native Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What is a Drawer Navigator?

A drawer navigator shows a slide-out side menu (drawer) that the user can open by swiping from the left edge or tapping a hamburger icon. It is ideal for apps with many top-level sections that do not fit in a tab bar. React Navigation provides it via the @react-navigation/drawer package.

Installing the Drawer Package

The drawer navigator requires additional gesture and animation libraries. Install the drawer package and its peer dependencies. The drawer relies on react-native-gesture-handler and react-native-reanimated for smooth animations.

npm install @react-navigation/drawer
npx expo install react-native-gesture-handler react-native-reanimated

Configuring Reanimated Babel Plugin

React Native Reanimated requires a Babel plugin to work. Add 'react-native-reanimated/plugin' as the last entry in your babel.config.js plugins array. Restart Metro bundler after making this change to clear the cache.

// babel.config.js
module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: ['react-native-reanimated/plugin'],
  };
};

Creating a Drawer Navigator

Use createDrawerNavigator() and register screens with Drawer.Screen components. Each screen appears as a menu item in the drawer. The drawer also renders a header with a hamburger menu icon that opens the drawer when tapped.

import { createDrawerNavigator } from '@react-navigation/drawer';

const Drawer = createDrawerNavigator();

function MyDrawer() {
  return (
    <Drawer.Navigator initialRouteName='Home'>
      <Drawer.Screen name='Home' component={HomeScreen} />
      <Drawer.Screen name='Settings' component={SettingsScreen} />
      <Drawer.Screen name='About' component={AboutScreen} />
    </Drawer.Navigator>
  );
}

Opening and Closing the Drawer

From any screen inside the drawer navigator, call navigation.openDrawer() to open the side menu, navigation.closeDrawer() to close it, and navigation.toggleDrawer() to toggle between open and closed. Users can also swipe from the edge or tap the backdrop to close it.

function HomeScreen({ navigation }) {
  return (
    <Button
      title='Open Menu'
      onPress={() => navigation.openDrawer()}
    />
  );
}

Customizing Drawer Screen Options

Use the drawerIcon option on each Drawer.Screen to add an icon next to the menu item. Use drawerLabel to override the display name. These options follow the same pattern as tab navigator options, giving you a consistent API across navigators.

<Drawer.Screen
  name='Home'
  component={HomeScreen}
  options={{
    drawerLabel: 'Dashboard',
    drawerIcon: ({ color, size }) => (
      <Ionicons name='home-outline' size={size} color={color} />
    ),
  }}
/>

What Are Nested Navigators?

Nested navigators occur when you place one navigator inside a screen of another navigator. For example, a drawer navigator can contain a tab navigator, which can itself contain stack navigators inside each tab. This is how complex apps structure their navigation hierarchy.

Nesting a Stack Inside a Drawer Screen

To give each drawer section its own navigation history, use a Stack.Navigator as the component for a Drawer.Screen. The stack's header and the drawer header may conflict — set headerShown: false on the drawer to hide its header and rely on the stack header.

function HomeStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen name='Home' component={HomeScreen} />
      <Stack.Screen name='Details' component={DetailsScreen} />
    </Stack.Navigator>
  );
}

<Drawer.Screen
  name='HomeSection'
  component={HomeStack}
  options={{ headerShown: false }}
/>

Navigation Across Nested Navigators

When navigating across nested navigators (e.g., from a screen inside a tab to a screen in another tab's stack), use the full screen name and navigator target. React Navigation resolves the correct navigator. You may also navigate to a parent navigator's screen using navigation.navigate('ParentScreen', { screen: 'ChildScreen' }).

// Navigate to a screen nested inside a different tab
navigation.navigate('ProfileTab', {
  screen: 'EditProfile',
  params: { userId: 5 },
});

The Back Button and Nested Stacks

When a stack is nested inside a tab or drawer, the back button in the stack header only pops the stack — it does not switch tabs or close the drawer. Each navigator manages its own history independently. This is intentional and matches the expected behavior users experience in native apps.

Custom Drawer Content

Replace the default drawer menu with a fully custom component using the drawerContent prop on Drawer.Navigator. Your custom component receives navigation and state props and can display a user avatar, subscription info, or any other content above or below the menu items.

function CustomDrawer(props) {
  return (
    <DrawerContentScrollView {...props}>
      <Image source={{ uri: user.avatar }} style={styles.avatar} />
      <Text>{user.name}</Text>
      <DrawerItemList {...props} />
    </DrawerContentScrollView>
  );
}

<Drawer.Navigator drawerContent={(props) => <CustomDrawer {...props} />}>

Quick Check

Test your understanding of Drawer Navigator and nested navigators from this lesson.

Lesson Recap

In this lesson you learned: create a drawer navigator with createDrawerNavigator, open and close the drawer programmatically with navigation.openDrawer/closeDrawer, and nest navigators by using a navigator component as a screen's component prop. Next up we explore the FlatList component for efficiently rendering large data sets.

Häufig gestellte Fragen

Ist die Lektion „Drawer-Navigator und verschachtelte Navigatoren“ kostenlos?

Ja — der vollständige Text von „Drawer-Navigator und verschachtelte Navigatoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Native Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Native Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Drawer-Navigator und verschachtelte Navigatoren“?

Richten Sie einen Drawer-Navigator ein, verschachteln Sie einen Stack innerhalb eines seiner Screens und verstehen Sie, wie verschachtelte Navigatoren mit Header und Zurück-Schaltfläche interagieren. Du übst React Native Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Native Academy zu starten?

Keine Vorkenntnisse erforderlich. React Native Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Drawer-Navigator und verschachtelte Navigatoren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Native Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Native Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. React Navigation installieren und konfigurieren
  2. Zwischen Screens navigieren und Parameter übergeben
  3. Bottom-Tab-Navigator
  4. Drawer-Navigator und verschachtelte Navigatoren
← Zurück zu React Native Academy