티스토리 뷰
Nested Navigator
- 네비게이터는 own 히스토리를 갖는다.
- 뒤로가기를 하면 parent 네비게이터가 있더라도 nested stack 내부의 전 스크린으로 이동한다.
- 네비게이터는 own 옵션을 갖는다. title 옵션을 child navigator에서 지정하더라도 parent에게는 영향을 주지 않는다.
- 네비게이터는 own param을 갖는다.
- nested 네비게이터 안의 스크린에 패스된 파라미터는 parent나 child 네비게이터의 라우트 파라미터에 접근이 불가능하다.
- 네비게이터 액션은 현재 네비게이터에 의해 핸들링되고 만약 핸들링 불가능한 경우 버블링된다.
- 예를 들어 nested 네비게이터의 첫번째 페이지에 있는 경우 뒤로가기를 하면 부모 네비게이터로 이동한다.
- 예를 들어 아래 구조에서 Feed 스크린에서 Messages로 네비게이트를 시도했을 때는 nested 내에서 핸들링이 가능하지만 Settings로 네비게이팅은 핸들링을 못해서 parent 네비게이터가 실행한다.
Home
(Tab.Navigator
)Feed
(Screen
)Messages
(Screen
)
Profile
(Screen
)Settings
(Screen
)
- child 네비게이터는 parent 네비게이터의 메서드를 사용할 수 있다.
- nested 네비게이터는 parent의 이벤트를 받지 않는다.
- 예를 들어 stack 네비게이터가 tab 네비게이터 안에 있다고 할 때, tab 네비게이터가 tabPress 이벤트를 emit해도 stack 네비게이터는 이 이벤트를 listen할 수 없다.
- parent로 부터 이벤트를 받으려면 navigation.getParent 를 명시적으로 사용해야 한다.
- parent 네비게이터의 UI는 child 네비게이터 UI의 상위에 그려진다.
네비게이팅
parent 네비게이터에서 child 네비게이터로 이동하면 해당 네비게이터의 initial 스크린이 보여지게 된다.
만약 child 네비게이터의 initial 스크린이 아닌 특정 스크린으로 이동하고 싶다면 두번째 파라미터로 스크린을 지정해줘야 한다.
navigate('Root', { screen: 'Profile', params: { user: 'JANE' } })
네비게이터에 지정된 이니셜 라우트 렌더링하기
- 네비게이터 내의 스크린으로 이동할 때 이 스크린이 initial 스크린으로 사용되고 네비게이터에 지정된 이니셜 라우트는 무시된다.
- 만약 이 이니셜 라우트를 살리고 싶으면 initial 옵션을 false로 주면 된다. 그러면 뒤로 가기를 할 때 이니셜 스크린이 있다면 그리로 이동하게 된다.
navigate('Root', { screen: 'Profile', initial: false })
Ref
'공부일지(TIL) > JS Framework + Library' 카테고리의 다른 글
[React Native] ScrollView keyboardShouldPersistTaps (0) | 2023.04.12 |
---|---|
[React] re-render가 일어나는 경우와 불필요한 리렌더를 줄이는 법 (0) | 2023.03.18 |
[React Query] Tracked Query (0) | 2023.03.16 |
[React] usePrevious hook (0) | 2023.02.13 |
[React Query] active하고 stale한 쿼리의 refetch (0) | 2023.01.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jQuery
- youtube data api
- getter
- 인스턴스
- oracle
- Data Structure
- 알고리즘
- CSS
- SQL
- react
- 포인터 변수
- til
- 자바
- 제네릭스
- JavaScript
- useEffect
- this
- Session
- 개발 공부
- linkedlist
- Conflict
- 리덕스
- 깃
- package.json
- Java
- Prefix Sums
- GIT
- rxjs
- c언어
- Redux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함