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