새소식

앱개발(JS)

앱개발 학습. 스택네비게이션 구현하기

  • -
728x90

리액트 내비게이션 설치

2022.09.27 - [Programming/앱개발(JS)] - 리액트네이티브 네비게이션 설치

 

리액트네이티브 네비게이션 설치

React Navigation이란? 페이지 이동을 구현하는 손쉬운 방법. 다 쓰는 방법이라고 한다. https://reactnavigation.org/ React Navigation | React Navigation Routing and navigation for your React Native apps..

codecellar.tistory.com

사용 방법

공식문서에 사용방법이 설명되어있다.

https://reactnavigation.org/docs/stack-navigator/

 

https://reactnavigation.org/docs/stack-navigator/

 

reactnavigation.org

스택 네비게이션 구현

1. 프로젝트 내 navigation 폴더 생성, StackNavigator.js 파일 생성

2. StackNavigator.js에 위의 문서 API Reference를 활용해 코드를 작성한다.

StackNavigator 함수 안에

<Stack.Navigator> 로 책갈피를 구성하고,

하위 태그로 <Stack.Screen> 을 사용하여 각 페이지를 넣어둡니다.

 

  • 네비게이터에서 헤더 스타일을 수정할 수 있음
import React from 'react'; //설치한 스택 네비게이션 라이브러리를 가져옵니다 import { createStackNavigator } from '@react-navigation/stack'; //페이지로 만든 컴포넌트들을 불러옵니다 import DetailPage from '../pages/DetailPage'; import MainPage from '../pages/MainPage'; //스택 네비게이션 라이브러리가 제공해주는 여러 기능이 담겨있는 객체를 사용합니다 //그래서 이렇게 항상 상단에 선언하고 시작하는게 규칙입니다! const Stack = createStackNavigator(); const StackNavigator = () =>{ return ( //컴포넌트들을 페이지처럼 여기게끔 해주는 기능을 하는 네비게이터 태그를 선언합니다. //위에서 선언한 const Stack = createStackNavigator(); Stack 변수에 들어있는 태그를 꺼내 사용합니다. //Stack.Navigator 태그 내부엔 페이지(화면)를 스타일링 할 수 있는 다양한 옵션들이 담겨 있습니다. <Stack.Navigator screenOptions={{ headerStyle: { backgroundColor: "black", borderBottomColor: "black", shadowColor: "black", height:100 }, headerTintColor: "#FFFFFF", headerBackTitleVisible: false }} > {/* 컴포넌트를 페이지로 만들어주는 엘리먼트에 끼워 넣습니다. 이 자체로 이제 페이지 기능을 합니다*/} <Stack.Screen name="MainPage" component={MainPage}/> <Stack.Screen name="DetailPage" component={DetailPage}/> </Stack.Navigator> ) } export default StackNavigator;

3. App.js에 Stack Navigator 적용하기

NavigationContainer 를 불러와서 안에 StackNavigator를 배치한다.

import React from 'react'; import { StatusBar } from 'expo-status-bar'; //메인에 세팅할 네비게이션 도구들을 가져옵니다. import {NavigationContainer} from '@react-navigation/native'; import StackNavigator from './navigation/StackNavigator' export default function App() { console.disableYellowBox = true; return ( <NavigationContainer> <StatusBar style="black" /> <StackNavigator/> </NavigationContainer>); }
Contents
  • -

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.