강의

멘토링

로드맵

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

현자타임님의 프로필 이미지
현자타임

작성한 질문수

[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)

[미션 해설][7-5] 년도 선택 기능 구현하기

캘린더 개발 후에 navigation 에 대해서 궁금한 점이 있습니다.

작성

·

17

0

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

  1. 에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.

  2. 질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.

  3. 개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.

  4. 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다.

     

(에러 일부만 자르거나 일부만 복사하지말아주세요) 

캘린더에서 게시글을 선택을 하면

navigation.navigate('Feed', {
  screen: 'FeedDetail',
  params: { id: postId },
  initial: false,
});

 

이렇게 Feed 스택을 통해서 Feed 상세 스크린트로 이동하잖아요. 그래서 클릭할 때보면

 

캘린더 위에 Feed 목록 그 위에 Detail이 쌓이는 것을 확인하였습니다.

 

다만 게시글 상세에서 뒤로가기 했을 때 의도한 경로는 캘린더의 다시 그 상태로 남아아할텐데 그렇지 않고 목록으로 가서 어떻게 해야하는지 궁금합니다.

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 현자타임님.

질문하신 내용에 따르면, 캘린더에서 게시글을 선택하여 ‘FeedDetail’로 이동한 후 뒤로가기를 눌렀을 때 사용자가 캘린더 화면으로 돌아가기를 원하지만, ‘Feed’ 목록으로 돌아가게 되는 문제가 있다고 하셨습니다. 이러한 문제는 네비게이션 스택이 잘못 관리되어서 발생할 수 있습니다. 이를 해결하는 몇 가지 방법을 제시해 드리겠습니다.

  1. 네비게이션 스택 초기화: ‘FeedDetail’로 이동할 때 기존 ‘Feed’ 스택을 초기화하고 ‘FeedDetail’ 스크린만 스택에 남기면 뒤로가기 버튼이 캘린더로 바로 돌아가도록 만들 수 있습니다. 아래 방법을 시도해 보세요.
   navigation.reset({
     index: 0,
     routes: [{ name: 'FeedDetail', params: { id: postId } }],
   });

이 방법은 네비게이션 액션을 초기화해서 FeedDetail 스크린만 스택에 남기게 하여 뒤로가기 시 캘린더로 이동하게 합니다.

  1. 네비게이션 options 사용: ‘FeedDetail’ 스크린에서 뒤로가기를 눌렀을 때 캘린더로 돌아가게 하기 위해 ‘navigate’ 대신 ‘replace’를 사용할 수 있습니다.
   navigation.navigate({
     name: 'FeedDetail',
     params: { id: postId },
     merge: true,
   });
  1. Conditional Navigation: 경우에 따라 다른 경로를 설정하여, ‘FeedDetail’ 스크린 상태에서 뒤로가기 버튼을 수정하여 캘린더로 강제 이동하도록 할 수도 있습니다.

이 문제를 해결하는 데 도움을 줄 수 있는 유사한 상황을 다룬 글이 있었습니다. 문제 해결에 유용할 수 있는 기존의 답변을 확인하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

현자타임님의 프로필 이미지
현자타임

작성한 질문수

질문하기