인프런 커뮤니티 질문&답변

이종문님의 프로필 이미지

작성한 질문수

맛집 지도앱 만들기 (React Native + NestJS)

디자인 자료 (Figma)

다른 Navigation 에서 같은 screen 을 사용하는 경우도 있나요?

해결된 질문

24.06.26 14:33 작성

·

100

·

수정됨

1

  • 질문 작성시 꼭 참고해주세요

    • 최대한 상세히 현재 문제(또는 에러)와 코드(또는 github)를 첨부해주셔야 그만큼 자세히 답변드릴 수 있습니다.

    • 맥/윈도우, 안드로이드/iOS, 버전 등의 개발환경도 함께 적어주시면 도움이 됩니다. 

    • 에러메세지는 일부분이 아닌 전체 상황을 올려주세요!

질문이 있습니다 강사님 오류는 아니고 궁금한점이있어서 문의드립니다보통 다른 네비게이터의 자식 페이지로 이동할때StackNavigator 1
- Screen A
- Screen B

StackNavigator 2
- Screen C
- Screen Dnavigation.navigate('StackNavigator2', {screen: 'Screen C'}); 이렇게 이동한다고 하지만, 이게 엄청 복잡하거나 screen 안에 param 안에 screen 즉 아래와 같은 경우에는 어떻게 작업해야할까요?

navigation.navigate(MAIN_NAVIGATIONS.MAP, { screen: MAP_NAVIGATIONS.LOCATION_FEED_TAB, params: { screen: LOCATION_TAB_NAVIGATIONS.LOCATION_FEED_HOME, params: { screen: LOCATION_NAVIGATIONS.LOCATION_DETAIL, params: {id}, }, }, });

 

[ex) 상세 페이지(detail)를 list를 통해 이동했을 경우와 calendar 에서 바로 상세페이지로 이동했을 경우 goBack()의 히스토리가 잘못되어 calendar에서 바로 상세페이지(detail)로 이동하였을경우 goBack() 올바르게 작동하지 않는 경우]

3가지 방안으로 생각하였지만..

(1) goBack()을 사용하지 않고 어떤 경로로 접속하였든 List로 이동시키는 방법

(2) 아니면 흐름을 위하여 동일한 screen을 다른 navigation 에 각각 등록하여 따로 흐름(?)을 관리

screen을 다른 navigation 에 각각 사용하는 경우도있나요?

(3) 전역상태 push 관련 history를 직접 관리하여 작업해야하는 지

어떤게 맞는 방법인지 혹시 다른 방법이 있는지 궁금하여 문의드립니다.

답변 1

1

Kyo님의 프로필 이미지
Kyo
지식공유자

2024. 06. 26. 20:02

생각하신방법으로 했을때 잘된다면 그것도 맞는 방법이라고 생각합니다!

또한 스택을 이동할때 이전스택을 초기화하거나, 뒤로갔을때 이동할 스크린을 함께 넣는방법도 있으니 참고해보시면 좋을것같습니다.

https://reactnavigation.org/docs/navigation-actions/#reset

 

이종문님의 프로필 이미지
이종문
질문자

2024. 06. 26. 22:19

감사합니다