반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- gitpages
- 에뮬레이터 스킨
- useRef
- oh-my-zsh
- 포트폴리오 사이트
- ReactQuery
- 이미지 배경 지우기
- 리액트 쿼리
- rembg
- Drawer
- useEffect
- useCallback
- 갤럭시 스킨
- redux/toolkit
- bottom tabs
- useMemo
- react native
- useState
- reactnative
- MonGo
- bottom tabBar
- Stack
- 리액트네이티브
- react
- nodejs
- mongoDB
- Hook 함수
- iTerm2
- tabBarStyle
- listeners
Archives
- Today
- Total
프론트엔드 개발자의 개발 놀이터
Bottom tabs Navigation listeners 등록 본문
반응형
일반적으로 Bottom tabs Navigator에 등록된 Screen을 누르면 component에 등록된 첫번째 스택이 보여지게 됩니다.
하지만 메모 앱과 같이 Screen을 누르면 다음 스택(메모 작성 화면)으로 이동하는 기능을 추가하고 싶을 때는 Screen에 listeners를 등록해주고 navigation.navigate() 함수를 사용하여 이동되도록 하면 됩니다.
flow : 앱 실행 -> Bottom tabs Navigator의 첫번째 Screen Load -> 첫번째 Screen의 component에 등록된 첫번째 Stack이 화면에 보여짐 -> tabBarIcon을 누르면 listeners에서 다음 스택으로 이동하는 함수 호출
// BottomNavigation.tsx
<BottomStack.Navigator>
<BottomStack.Screen
name={BottomTabNameList.void}
component={MainNavigation}
listeners={({navigation, route}) => ({
tabPress: e => {
// Prevent default action
e.preventDefault();
// Do something with the `navigation` object
navigation.navigate(AllScreenList.WriteNote);
},
})}
options={{
tabBarIcon: ({focused}) => (
<View
style={{
alignItems: 'center',
justifyContent: 'center',
top: Platform.OS === 'ios' ? -10 : -20,
width: Platform.OS === 'ios' ? 70 : 60,
height: Platform.OS === 'ios' ? 70 : 60,
borderRadius: Platform.OS === 'ios' ? 35 : 30,
backgroundColor: Color.yellow,
}}>
<StackIcon
focused={focused}
Icon={IconPenIcon}
size={27}
/>
</View>
),
}}
/>
</BottomStack.Navigator>
// MainNavigation.tsx
<Stack.Navigator>
<Stack.Screen
name={AllScreenList.Main}
component={Main}
options={{headerShown: false}}
/>
<Stack.Screen
name={AllScreenList.WriteNote}
component={WriteNote}
options={{headerShown: false}}
/>
</Stack.Navigator>
'React Native' 카테고리의 다른 글
Drawer Navigator 등록 방법 (0) | 2024.02.07 |
---|---|
Bottom tabBar 안보이도록 설정하는 방법 (0) | 2024.02.07 |
자주 사용하는 RN 라이브러리 정리 (0) | 2024.02.03 |
RN 다양한 에러 대응 (0) | 2024.02.02 |
안드로이드 갤럭시 에뮬레이터 스킨 적용하기 (0) | 2024.02.02 |