
// 필요한 종속성 설치
npm install @react-navigation/native @react-navigation/stack
// Navigation.tsx라는 새 파일 생성
import { createStackNavigator } from '@react-navigation/stack';
import { NavigationContainer } from '@react-navigation/native';
const Stack = createStackNavigator();
const Navigation = () => {
return (
{/* 여기에 화면 정의 */}
);
};
export default Navigation;
2. 중첩된 네비게이터 생성하기
중첩된 네비게이터를 사용하면 하나의 네비게이터를 다른 네비게이터 안에 중첩하여 계층적인 네비게이션 구조를 만들 수 있습니다. 이는 앱에 여러 수준의 화면이 있는 경우 유용합니다. React Navigation을 사용하여 중첩된 네비게이터를 생성하는 예시는 다음과 같습니다:
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { createStackNavigator } from '@react-navigation/stack';
const Tab = createBottomTabNavigator();
const Stack = createStackNavigator();
const HomeStack = () => {
return (
{/* Home 스택에 대한 화면 정의 */}
);
};
const ProfileStack = () => {
return (
{/* Profile 스택에 대한 화면 정의 */}
);
};
const Navigation = () => {
return (
);
};
export default Navigation;
3. 화면 간에 매개변수 전달하기
실제 앱에서는 종종 화면 간에 매개변수를 전달해야 합니다. React Navigation은 navigation prop을 사용하여 매개변수를 전달하는 방법을 제공합니다. React Native에서 화면 간에 매개변수를 전달하는 예시는 다음과 같습니다:
// ScreenA.tsx
import { useNavigation } from '@react-navigation/native';
const ScreenA = () => {
const navigation = useNavigation();
const handlePress = () => {
navigation.navigate('ScreenB', { name: 'John Doe' });
};
return (
);
};
export default ScreenA;
// ScreenB.tsx
import { useRoute } from '@react-navigation/native';
const ScreenB = () => {
const route = useRoute();
return (
{route.params.name}
);
};
export default ScreenB;
결론:
이 블로그 포스트에서는 React Native 중첩 네비게이션과 Typescript에 대해 깊게 탐구했습니다. React Navigation과 Typescript를 설정하는 방법, 중첩된 네비게이터를 생성하는 방법, 화면 간에 매개변수를 전달하는 방법을 배웠습니다. 이러한 개념을 이해하면 React Native 앱에서 복잡한 네비게이션 구조를 쉽게 구축할 수 있습니다. 즐거운 코딩하세요!반응형
'FrontEnd' 카테고리의 다른 글
React Native를 사용하여 타입스크립트와 React Query 적용하기 (0) | 2023.07.12 |
---|---|
Building Cross-platform Mobile Apps with React Native and Typescript (0) | 2023.07.11 |
React Native와 함께 사용하는 TypeScript의 이점 및 사용 방법 (0) | 2023.07.11 |
React Native에서 Text Input 컴포넌트 label 색상 변경하는 방법 (0) | 2023.07.11 |
자바스크립트 알고리즘 테스트란 무엇인가요? (0) | 2023.06.28 |