[React] React Navigation
- ๋ฅ์ง
- Development
- ๋ถ๋ฅ
- Javascript
- ๋ฑ๋ก์ผ
React native์ ๊ธฐ๋ณธ ์ปดํฌ๋ํธ์ธ Navigator ์ปดํฌ๋ํธ๊ฐ ์ด๋ฏธ ์กด์ฌํ์ง๋ง ๋ณ๋๋ก ์ค์นํด์ผ ์ฌ์ฉํ ์ ์๋ React Navigation์ผ๋ก ๋ฌด๋ฆฌํ๊ฒ ๊ต์ฒดํ๊ฒ ๋์๋ค.
Navigator๋ฅผ ์์ํ๊ฒ ์ฐ๊ธฐ์๋ ์์ด ๋๋ฌด ๋ง์ด๊ฐ๊ธฐ๋ ํ๊ณ ์ปจํธ๋กค ํด์ค์ผํ๋ ๋ถ๋ถ๋ค๋ ๋ง๊ณ , ํตํฉ์ ์ธ ๋ค๋น๊ฒ์ด์
์์คํ
์ด ํ์ํด ๋ณด์๋ค. ๋ฌด์๋ณด๋ค ํญ๊ณผ ์นด๋ํ์์ผ๋ก ๋ค๋ฅด๊ฒ ๋์ํ๋ ๋ค์ด๊ฒ์ด์
์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ฐ๋๊ฒ์ด ์๋ฌด๋๋ ๋์ ๋ณด์๋ค.
ํ์ฌ ๊ธฐ์ค์ผ๋ก ์์ง 1.0.0-beta.3์ผ๋ก ์ ์์ผ๋ก ๋์จ ๋ฒ์ ์ ์๋๋ผ์ ๊ทธ๋ฐ์ง ์ฌ๊ฐํ์ง๋ ์์ง๋ง ๋ช๋ช ๋ฌธ์ ์ ๋ค์ ๋ณด์ธ๋ค. ๊ทธ๋๋ ๊ธฐ๋ฅ์ด ์ถฉ๋ถํ ์ข์์ ๊ด์ฐฎ์ ๋์ ์ค ํ๋๋ค.
StackNavigator๊ณผ TabNavigator ์กฐํฉ์ฌ์ฉ
stack๊ณผ tab์ ์กฐํฉํด์ ์ฌ์ฉํ ์ผ์ด ์ข ์ข ์์๊ฒ์ด๋ค.
StackNavigator({
TabNavigation: {
screen: TabNavigator()
},
});
๋๋ต์ ์ผ๋ก Stack์ Tab์ ์ง์ด๋ฃ๊ฑฐ๋ ๋ฐ๋๋ก Tab์ Stack์ ๋ฃ๋ ํํ๋ก ์ฌ์ฉํ ์ ์์๋ค.
์ปดํฌ๋ํธ์์ state์ ํ์ธํด๋ณด๋ ์์ ๋ค๋น๊ฒ์ด์
์ routes ๊ฐ์ผ๋ก ๋ค์ด๊ฐ ์๋๊ฒ์ ํ์ธํ ์ ์์๋ค. ํ์ฌ index๊ฐ๋ ๊ฐ์ด ๋ค์ด์์ผ๋ ํ์ฉํ๋ฉด ํ์ฌ route๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
ํ์ด์ง ์ด๋ ์ ํ์ด์ง ํธ๋ํนํ๊ธฐ
ํญ์ด๋ ํ์ด์ง๋ฅผ ์ด๋ํ๋ฉด Storage์ ์์น์ ๋ณด๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ๋๋ฐ ์๋ฌด๋ฆฌ ์ฐพ์๋ด๋ ์ด๋ํ์๋ ์ด๋ฒคํธ ํจ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ค. ๋งค๋ด์ผ์ ๊ณ์ ๋ณด๋ค๊ฐ https://reactnavigation.org/docs/guides/screen-tracking ๊ธ์ ๋ณด๊ฒ ๋์๋ค.
์์ ์ ์ ํ ์์ค๋ ํ์ด์ง๊ฐ ์ด๋ํ๋ฉด Google analytics์ ๊ธฐ๋กํ๋ ์ก์
์์ ๋ค. ์ด๊ฑธ๋ก ํ์ด์ง๊ฐ ์ด๋ํ ๋๋ง๋ค ๋ฌด์ธ๊ฐ ์ก์
์ ๋ฃ์ ์ ์๋ค๋ ํ์ ์ ์ป์๋ค. (ํ๋ฃจ์ข
์ผ ๋ฐฉ๋ฒ์ ์ฐพ์๋ค๋
๋๋ฐ.. ใ
ใ
)
const nav = StackNavigator({});
nav.prototype.componentDidUpdate = function(prevProps, prevState)
{
console.log('prev page state', prevState);
console.log('current page state', this.state);
};
๋ค๋ง ์ต์ด์ ํ์ด์ง๋ ํธ์ถ๋์ง ์๋๋ค. componentDidUpdate์ ํน์ฑ์ด๋ผ๊ณ ๋ณผ ์ ์๊ธฐ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํด์ผํ ๊ฒ์ด๋ค.
0๊ฐ์ ๋๊ธ
๋ฑ๋ก๋ ๋๊ธ์ด ์์ต๋๋ค.