๐ŸŒCoding/๐ŸŒŸReact-Native

[React Native] Bottom Bar & Transfer page_ navigation v5

๋ฟŒ์•ผ._. 2021. 7. 21. 00:19

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