태그
목차

드로어 네비게이션

생성일: 2024-04-05

수정일: 2024-04-05

탐색에서 일반적인 패턴은 화면 간 이동을 위해 왼쪽(때로는 오른쪽) 측면에서 드로어를 사용하는 것이다.

계속하기 전에 먼저 @react-navigation/drawer 와 그 종속성을 지시에 따라 설치해야 한다.

드로어 기반 탐색 기본 예제

드로어 내비게이터를 사용하려면 @react-navigation/drawer 에서 import한다:

import * as React from 'react';
import { Button, View } from 'react-native';
import { createDrawerNavigator } from '@react-navigation/drawer';
import { NavigationContainer } from '@react-navigation/native';

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Button
        onPress={() => navigation.navigate('Notifications')}
        title="Go to notifications"
      />
    </View>
  );
}

function NotificationsScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Button onPress={() => navigation.goBack()} title="Go back home" />
    </View>
  );
}

const Drawer = createDrawerNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Drawer.Navigator initialRouteName="Home">
        <Drawer.Screen name="Home" component={HomeScreen} />
        <Drawer.Screen name="Notifications" component={NotificationsScreen} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}

드로어 열기와 닫기​

드로어를 열고 닫으려면 다음 헬퍼를 사용한다:

navigation.openDrawer();
navigation.closeDrawer();

드로어를 토글하려면 다음과 같이 호출한다:

navigation.toggleDrawer();

이 함수들은 내부적으로 액션을 디스패치한다:

navigation.dispatch(DrawerActions.openDrawer());
navigation.dispatch(DrawerActions.closeDrawer());
navigation.dispatch(DrawerActions.toggleDrawer());

드로어가 열려 있는지 닫혀 있는지 다음과 같이 확인 할 수 있다:

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

// ...

const isDrawerOpen = useDrawerStatus() === 'open';