Table of Content
React Navigation の階層
React Navigationを使ってナビゲーションの階層(ネスティング)を作ります。
React Navigatorの使い方で基本的なナビゲーションの作り方をみました。
[ReactNative]React Navigatorの基本
今回はナビゲーションの中にナビゲーションをネストさせて階層のあるナビゲーションを作ってみます。まずは基本的なStackNavigatorを作ります。
const MainTabNavigator = StackNavigator({ Welcome: { screen: WelcomeScreen, navigationOptions: { header: null, } }, Auth: { screen: AuthenticationScreen, navigationOptions: { header: null, } }, Main: { screen: HomeScreen, navigationOptions: { header: null, } }, });
このMainのHomeScreenをTabで切り替えられるようにします。MainのスクリーンにTabNavigatorを追加して、HomeScreenとGoalScreenを切り替えられるようにします。
const MainTabNavigator = StackNavigator({ Welcome: { screen: WelcomeScreen, navigationOptions: { header: null, } }, Auth: { screen: AuthenticationScreen, navigationOptions: { header: null, } }, Main: { screen: TabNavigator({ Home: { screen: HomeScreen, navigationOptions: { tabBarLabel: 'ホーム', } }, Goal: { screen: GoalScreen, navigationOptions: { tabBarLabel: '目標', } } }) } });
これを2つに分けて、次のように書いても同じです。
const MainTabNavigator = StackNavigator({ Welcome: { screen: WelcomeScreen, navigationOptions: { header: null, } }, Auth: { screen: AuthenticationScreen, navigationOptions: { header: null, } }, Main: { screen: MainNavigator } }); const MainNavigator = TabNavigator({ Home: { screen: HomeScreen, navigationOptions: { tabBarLabel: 'ホーム', } }, Goal: { screen: GoalScreen, navigationOptions: { tabBarLabel: '目標', } }, })
今回のようにStackNavigatorの中にTabNavigatorをネストさせる場合はいいのですが、
TabNavigatorの中にTabNavigatorをネストさせるとエラーになりました。
そのあたりは次回まとめたいと思います。