๊ด€๋ฆฌ ๋ฉ”๋‰ด

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[React-Native] React Navigation | ํ™”๋ฉด Linking 01 ๋ณธ๋ฌธ

Computer ๐Ÿ’ป/React

[React-Native] React Navigation | ํ™”๋ฉด Linking 01

yeon42 2021. 7. 24. 14:18
728x90

Stack Navigation

- ๋ฒ„ํŠผ, ์‚ฌ์ง„์„ ๋ˆ„๋ฅด๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํ–ˆ์„ ๋•Œ ํ™”๋ฉด์„ ์ „ํ™˜์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ

 

 

- App.js๋ฅผ ์ดˆ๊ธฐํ™”์‹œํ‚ค๊ณ  ์‹คํ–‰์„ ํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด?

 1. cd ios

 2. pod install

 

 


 

  • React Navigation ์‚ฌ์šฉํ•˜๊ธฐ
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navagion/stack';

const Stack = createStackNavigator();

  - App.js์— ํ•ด๋‹น ๋ชจ๋“ˆ import ํ•ด์ฃผ๊ธฐ

 

* Navigation Container

  - Navigation ๊ตฌ์กฐ์™€ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” component

  - ๋ชจ๋“  Navigation ๊ตฌ์กฐ๋Š” <NavigationContaier> ํƒœ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค.

 

* createStackNagivator

  - Screen๊ณผ Navigator ๋‘ ๊ฐœ์˜ property๋ฅผ returnํ•˜๋Š” ํ•จ์ˆ˜

  - ํ™”๋ฉด์ด ๋ Œ๋”๋ง ๋˜๋Š” ๋ถ€๋ถ„์—์„œ <Stack.Navigator> & <Stack.Screen> ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜์ž

 

class App extends Component {
  render() {
    return (
      <NavigationContainer>
        <Stack.Navigator>
          <Stack.Screen/>
        </Stack.Navigator>
      </NavigationContainer>
    )
  }
}

  - ์œ„์—์„œ Stack createStackNavigator() ํ•จ์ˆ˜์ด๋‹ค.

  - ๋”ฐ๋ผ์„œ <Stack.Navigator> & <Stack.Screen> ํƒœ๊ทธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

 

  • ์ƒˆ๋กœ์šด ํŒŒ์ผ home.js & user.js ์ƒ์„ฑ
class HomeScreen extends Component {
  render() {
    return (
      <View>
          <Text>Home Screen</Text>
      </View>
    )
  }
}

 

  • App.js์—์„œ import ํ•ด์ฃผ๊ณ , ํƒœ๊ทธ ์ถ”๊ฐ€
import HomeScreen from './src/home';
import UserScreen from './src/home';

...

<Stack.Screen
            name = "Home"
            component={HomeScreen}
          />

- 'Home'์ด๋ผ๋Š” ์ด๋ฆ„์˜ Header bar์™€ 'Home Screen'์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฌธ๊ตฌ๊ฐ€ ์ž˜ ๋œฌ๋‹ค.

-> User๋กœ ๋ฐ”๊ฟ”๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ๊ฒฐ๊ณผ!

Comments