- Published on
TIL๐ ์ฑ๊ฐ๋ฐ ์คํฐ๋ - 3 week
- Authors
- Name
- Haneul
TIL๐ ์ฑ๊ฐ๋ฐ ์คํฐ๋ - 3 week
React Navigation ๐ฅ
react native ์ฑ์ ๋ค๋น๊ฒ์ด์ ๊ธฐ๋ฅ๊ณผ ํ์คํ ๋ฆฌ๋ฅผ ๊ฐ๋จํ ๊ด๋ฆฌํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ค์น
yarn add @react-navigation/native
yarn add @react-navigation/stack
expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
Stack Navigator ๐
์คํ ๋ค๋น๊ฒ์ด์ ์ ์ปดํฌ๋ํธ์ ํ์ด์ง ๊ธฐ๋ฅ์ ๋ถ์ฌํด์ฃผ๊ณ ์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ๋ก ์ด๋, ์ฆ ํ์ด์ง ์ด๋์ ๊ฐ๋ฅํ๊ฒ ํด์ค๋ค.
<Stack.Navigator
screenOptions={{
headerStyle: {
backgroundColor: "black",
borderBottomColor: "black",
shadowColor: "black",
height:100
},
//ํค๋์ ํ
์คํธ๋ฅผ ์ผ์ชพ์ ๋์ง ๊ฐ์ด๋ฐ์ ๋์ง๋ฅผ ๊ฒฐ์
headerTintColor: "#fff",
headerBackTitleVisible: false
}}
>
{/* name์ ํด๋น ํ๋ ๋ถ๋ถ์ด ํ์ด์ง์ ํ์ดํ์ด ๋ฉ๋๋ค.*/}
<Stack.Screen name="MainPage" component={MainPage}/>
<Stack.Screen name="DetailPage" component={DetailPage}/>
</Stack.Navigator>
ํ์ด์ง ์ด๋
//ํด๋น ํ์ด์ง์ ์ ๋ชฉ์ ์ค์ ํ ์ ์์
navigation.setOptions({
title:'๋๋ง์ ๊ฟํ'
})
//Stack.screen์์ name ์์ฑ์ผ๋ก ์ ํด์ค ์ด๋ฆ์ ์ง์ ํด์ฃผ๋ฉด ํด๋น ํ์ด์ง๋ก ์ด๋ํ๋ ํจ์
navigation.navigate("DetailPage")
//name ์์ฑ์ ์ ๋ฌํด์ฃผ๊ณ , ๋ ๋ฒ์งธ ์ธ์๋ก ๋์
๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด, Detail ํ์ด์ง์์
//๋๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ ๋์
๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ route ๋์
๋๋ฆฌ๋ก ๋ก ๋ฐ์ ์ ์์
navigation.navigate("DetailPage",{
title: title
})
๊ณต์ ํ๊ธฐ (Share Contents) ๐
import { Share } from 'react-native';
Share.share({
message:`${tip.title} \n\n ${tip.desc} \n\n ${tip.image}`,
});
์ธ๋ถ ๋งํฌ ์ฐ๊ฒฐ (Open Link) ๐
์ค์น
expo install expo-linking
์ฌ์ฉ
import * as Linking from 'expo-linking';
Linking.openURL("https://spartacodingclub.kr")
์๋จ status bar
์ค์น
expo install expo-status-bar
์ฌ์ฉ
import { StatusBar } from 'expo-status-bar';
<StatusBar style="black" />
TIL โ
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ์์ ํ์ด์ง ์ ํ์ ์ฌ์ฉ๋๋ ๋ฆฌ์กํธ ๋ค๋น๊ฒ์ด์ ์ ํ์ตํ๋ค. ํนํ ์คํ ๋ค๋น๊ฒ์ดํฐ๋ฅผ ์ด์ฉํด ํ์ด์ง ์ด๋์ ๊ตฌํํ๊ณ , ์ด ์ธ์๋ ํญ ๋ค๋น๊ฒ์ดํฐ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
expo์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ ์ค, ์ธ๋ถ ๋งํฌ ์ฐ๊ฒฐ, ์๋จ status bar๋ฅผ ์ปจํธ๋กคํ ์ ์๋ค. RN์์ ์ ๊ณตํ๋ share ๋ ๋ง์ฐฌ๊ฐ์ง!
๋ณดํต expo๋ก ๊ฐ๋ฐํ๋ฉด ํธํ์ง๋ง ios/android๋ฅผ ๋ฐ๋ก ์ค์ ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ปค์คํ ํ๊ฒ ์ฌ์ฉํ๋ ค๋ฉด react native cli๋ก ์ค์นํ๋ฉด ๋๋ค.
์ฐธ๊ณ : ์คํ๋ฅดํ ์ฝ๋ฉํด๋ฝ, React Naitve, React Navigation, Expo API, Expo status bar