Bottom Bar (ํ๋จ ๋ฐ) & ํ์ด์ง ์ ํ
ํ๋จ ๋ฐ์ ํ์ด์ง ์ ํ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋๋ฐ ์๊ฐ๋ณด๋ค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
๊น๋จน์ง ์๊ธฐ ์ํด ์ ๋ฆฌํด๋๋ค.
npm install @react-navigation/bottom-tabs
npm install @react-navigation/native
npm install @react-navigation/stack
npm install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
์์ ๊ฐ์ด ๋ช ๋ น์ด๋ฅผ Terminal์ ์ ๋ ฅํ์ฌ ์ค์นํด์ค๋ค.
๐ import
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { NavigationContainer } from '@react-navigation/native';
๐ Bottombar์ page ์ ํ์ ํจ๊ป ๊ตฌํํ๊ธฐ ์ํ์ฌ ์๋์ ๊ฐ์ด ์ฝ๋ ์์ฑ
const Stack=createStackNavigator();
const Tab=createBottomTabNavigator();
// bottombar
function TabStack({navigation, route}){
return(
<Tab.Navigator tabBarOptions={{ css }}>
<Tab.Screen name="์ด๋ฆ์ด๋ฆ" component={ ์ด๋ฆ์ด๋ฆ }/>
<Tab.Screen name=" ์ด๋ฆ์ด๋ฆ " component={ ์ด๋ฆ์ด๋ฆ }/>
</Tab.Navigator>
)
}
// page
export default function App(){
return(
<NavigationContainer>
<Stack.Navigator screenOptions={{headerShown:false -> ์๋จ์ ๋ฐ ์์ ๊ธฐ }}>
<Stack.Screen name="A" component={A}/>
<Stack.Screen name="B" component={TabStack -> bottombar ํจ์๋ช
}>
<Stack.Screen name="C" component={C}>
</Stack.Screen>
</Stack.Navigator>
</NavigationContainer>
)
}
๐ B.js
A.js -> B.js๋ก ํ์ด์ง ์ ํํ ๋
<TouchableOpacity onPress={()=>navigation.navigate('B')}>
<Text>test</Text>
</TouchableOpacity>
onPress={()=> navigation.navigate('B')}
๐ C.js
์ ํ์ด์ง๋ฅผ ๊ฐ๊ณ ์ถ์ ๋
// if ํ๋จ ๋ฐ๋ก ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๊ฐ๋ค๊ฐ C.js์์ B.js๋ก ๊ฐ๊ณ ์ถ์๋
<TouchableOpacity onPress={()=>navigation.push('B')} >
</TouchableOpacity>
// if ๋ฐ๋ก ์ ํ์ด์ง๋ฅผ ๊ฐ๊ณ ์ถ์๋
<TouchableOpacity onPress={()=>navigation.goBack()} >
</TouchableOpacity>
๐ classํ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ
render(){
const {navigation}=this.props;
return(
<TouchableOpacity onPress={()=>this.props.navigation.navigate('Weekly')}>
</TouchableOpacity>
)
}
'๐Coding > ๐React-Native' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React Native] icon ์ฌ์ฉ (0) | 2021.07.20 |
---|---|
[React Native] props (0) | 2021.07.16 |
[React Native] LOGIC & API (0) | 2021.07.13 |
[React Native] INTRODUCTION & Setting (0) | 2021.07.12 |