개발자

프로필 스택 네비게이션 구조 설계하는 법 (React Navigation)

2024년 12월 01일조회 31

React Native로 프로젝트를 진행 중이고, React Navigation으로 라우팅 설계를 했습니다. 프로필 같은 스크린은 어떤 화면에서든 공통적으로 떠야 하잖아요, 예를 들어 커뮤니티 서비스면 어떤 화면에서든 유저 프로필 아이콘을 누르면 상세 프로필 화면으로 갈 수 있고, 프로필과 관련된 화면으로 또 다시 이동할 수 있도록 하는 것 같은데.. (프로필 수정, 프로필 선택, 이 유저가 가입한 커뮤니티 목록 등등) 이러한 경우의 네비게이션 설계를 실제 프로덕트 프로젝트에서는 어떻게 진행하시나요? 저는 가장 바깥의 root 네비게이션에서 프로필 스택 네비게이션을 두고 사용하면 어떨까 생각하고 있습니다. 참고로 현재 프로젝트에 적용된 네비게이션 구조는 아래와 같습니다. - 메인 화면 (바텀 탭 네비게이터) - 탑탭 네비게이터 - 스택 네비게이터1 - 스택 네비게이터2 - 스택 네비게이터3 - 단일 스크린

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

최경락님의 프로필 사진

질문자님께서 말씀하신 방식의 접근이 가장 일반적입니다. 모든 스택과 스크린에서 접근 할 수 있어야 한다면 루트가 되는 네비게이터에 위치하는게 가장 용이합니다!

profile picture

익명

작성자

2024년 12월 03일

아 그렇군요! 감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 12월 01일

React Navigation에서는 Stack Navigator를 사용하여 찾고 있는 것처럼 프로필 화면을 어디서든 접근할 수 있도록 설계할 수 있습니다. 가장 바깥쪽에 RootStack이라는 Stack Navigator를 만들어 그 안에 Main Tab Navigator와 ProfileStack을 넣을 수 있습니다. 이렇게 하면 Main Tab 내의 어떤 화면에서든 ProfileStack으로 액세스 할 수 있게 됩니다. 다음은 적용 예시입니다: ```jsx const MainTab = createBottomTabNavigator(); const ProfileStack = createStackNavigator(); const RootStack = createStackNavigator(); function MainTabScreen() { return ( <MainTab.Navigator> {/* 여기에 기존의 탭과 스크린들을 정의 */} </MainTab.Navigator> ); } function ProfileStackScreen() { return ( <ProfileStack.Navigator> {/* 여기에 프로필 관련 스크린들을 정의 */} </ProfileStack.Navigator> ); } export default function App() { return ( <NavigationContainer> <RootStack.Navigator mode="modal"> <RootStack.Screen name="Main" component={MainTabScreen} options={{ headerShown: false }} /> <RootStack.Screen name="Profile" component={ProfileStackScreen} /> </RootStack.Navigator> </NavigationContainer> ); } ``` 이제 각 스크린에서 `navigation.navigate('Profile')`를 호출하면 프로필 스택으로 이동하게 됩니다. 'Profile'은 스택 네비게이터에 정의된 스크린 이름입니다. 여기서 RootStack은 `mode=modal`로 설정되어 있어 ProfileStack을 별도의 모달로 보여주고, MainTab 아래에서 독립적으로 작동합니다. 따라서 필요에 따라 이 설정을 변경해서 사용할 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!