inflearn logo
강의

講義

知識共有

ハンズオンリアクトネイティブ

10.5 :: テキスト入力オプションの設定と画面移動

navigation.replace() 작동하지 않습니다.

147

dvdve

投稿した質問数 21

0

navigation.replace(MainRoutes.WRITE_TEXT, { photoUris });

이 부분이 replace로 작동하지 않고
뒤로 가기시 navigate 와 같이

다시 사진선택 화면으로 이동하는데

뭐가 문제인지 몰라서 질문드립니다.

 

git주소는 =>
https://github.com/dvrakry/rn-photo2
입니다 감사합니다!

react-native

回答 2

1

beomjun

문제가 어디인지를 찾는 능력을 길러야합니다. 현재 문제를 기준으로 설명하면,

 

이미지 선택 화면(SelectPhotosScreen) -> 이미지 픽커(ImagePickerScreen) -> 이미지 선택 화면(SelectPhotosScreen)

에서 뒤로가기를 하면 이미지 픽커(ImagePickerScreen) 화면으로 돌아갑니다.

이미지 선택 화면(SelectPhotosScreen) -> 이미지 픽커(ImagePickerScreen) -> 이미지 선택 화면(SelectPhotosScreen) -> 글 작성 화면(WriteTextScreen)

에서도 뒤로가기를 하면 이미지 픽커(ImagePickerScreen) 화면으로 돌아갑니다.

 

즉, 스택에 이미지 픽커(ImagePickerScreen) 화면이 남아 있다는 것을 알 수 있습니다.

이미지 픽커(ImagePickerScreen) 화면에서 선택된 이미지들을 가지고, 이미지 선택 화면(SelectPhotosScreen)으로 돌아올 때 스택에서 사라져야 할 이미지 픽커(ImagePickerScreen) 화면이 남아있다는 것이 됩니다.

따라서, ImagePickerScreen.js 파일에서 확인 버튼을 눌렀을 때, SelectPhotosScreen.js 파일로 이동하는 부분을 확인하면 됩니다.

 

스택에 화면이 남아있어서 나타나는 현상으로, 앞에서 질문한 내용과 같은 문제입니다.

https://inf.run/BGHtc

 

https://github.com/dvrakry/rn-photo2/blob/master/src/screens/ImagePickerScreen.js#L21

navigate함수를 popTo로 변경하세요

https://reactnavigation.org/docs/native-stack-navigator/#popto

 

1

dvdve

감사합니다 선생님. 더 고민해보면서 답을 찾아보는 능력을 더 길러보겠습니다!!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. dvdve님.

navigation.replace() 가 예상대로 작동하지 않는 문제를 겪고 계신 것 같습니다. 이 함수는 현재 스크린을 제공된 스크린으로 교체하는 역할을 합니다. 따라서 뒤로 가기 버튼을 누르더라도 이전 스크린으로 돌아가지 말아야 합니다. 이와 같은 문제가 발생하는 경우 몇 가지 확인해 보아야 할 사항이 있습니다.

1. navigation 객체의 유효성

다음의 예시처럼 navigation 객체가 적절하게 정의되어 있는지 확인해 보세요.

const navigation = useNavigation();

2. 네비게이션 스택 구조

현재 사용 중인 네비게이션 스택이 제대로 설정되어 있는지 확인하세요. replace 메서드는 같은 네비게이션 스택에만 영향을 미치므로, 스택이 제대로 설정되어 있지 않으면 예상치 않은 동작을 할 수 있습니다.

3. MainRoutes.WRITE_TEXT의 정의

MainRoutes.WRITE_TEXT가 제대로 정의되어 있고, 올바른 경로가 설정되어 있는지 확인해 보세요. URL이 잘못되어 있을 경우, replace가 작동하지 않을 수 있습니다.

유사한 질문 사례

위의 방법들을 통해 문제를 해결하실 수 있을 것입니다. 추가적으로, 스크린들이 같은 네비게이션 컨텍스트 내에서 실행되고 있는지 점검해보세요.

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

expo 가 업데이트 되면서 문제가 발생한거같습니다.

0

342

2

UpdateProfileScreen 에서 사진 버튼 클릭시 오류발생.

0

132

2

닉네임 수정 후 확인 버튼을 누를시 한글자만 출력됩니다.

0

177

2

모달창에서 버튼이 출력되지 않습니다.

0

104

2

로그인 에러 출력시 default값만 나옵니다.

0

144

2

안드로이드 기기에서 SignUp 화면 관련 질문드립니다.

0

85

2

간단한 질문 하나만 드리겠습니다!

0

76

2

text.trim() 부분에서 오류가 발생합니다.

0

124

2

profile 화면에서 내가 쓴 글이 나타나지 않습니다.

0

140

2

글 저장시 파일 저장위치 관련 질문드립니다!

0

111

2

구글 지도 API 관련 오류로 질문드립니다!

0

142

1

HeaderRight 버튼이 작동하지 않습니다.

0

88

2

사진이 나오지 않는 문제로 질문드립니다.

0

113

2

defaultProps 관련 문의 드립니당

0

244

2

이미지 목록을 받아오는 부분에서 IOS 에서 문제가 발생합니다.

0

129

2

안드로이드 기기에서 헤더 부분이 작동이 안됩니다.

0

87

2

[TypeError: unsubscribe is not a function (it is undefined)] 오류 발생으로 질문드립니다.

0

108

2

7.15 :: 상태 변수와 컴포넌트 언마운트 관련 질문드립니다!

0

98

2

SIgnIn SignUp 화면이 안나옵니다.

0

126

2

마지막 useEffect 부분 질문드립니다.

0

100

2

ImagPickerScreen을 만드는 과정에서 문제가 발생하여 글을 남깁니다.

0

208

2

eslint.config.mjs 파일에 plugin 설정방법

0

747

1

ESLint.json 파일이 생성되지 않습니다.

0

236

2

[환경변수 설정]

0

272

1