[ReactNative]React Navigatorの基本

Table of Content

ReactNavigator

React Nativeでルーティングを設定するのにReactNavigatorというライブラリがよく使われます。
他にもいくつかライブラリがあるようですが、最近はReactNavigatorが最も使われているようです。

React Navigation

まずはライブラリをインストール

npm install react-navigation --save

2つのスクリーンを切り替えるTab形式のNavigationを作ります。

import React, { Component } from 'react';
import { Text, View } from 'react-native';
import { TabNavigator } from 'react-navigation'; // 1.0.0-beta.27

//HomeScreenを定義します。
class HomeScreen extends Component {
  render() {
    return (
      <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
        <Text>Home!</Text>
      </View>
    );
  }
}

//SettingsScreenを定義します。 
class SettingsScreen extends Component { 
  render() { 
    return ( 
      <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
       <Text>Settings!</Text>
      </View>
    );
   }
}

//TabNavigatorを定義しエクスポートします。上で定義したHomeScreenとSettingScreenの2つをTabで切り替えられるようにします。 
//上に書いたHomeが優先的に表示されます。 
export default TabNavigator( 
  { Home: 
    { screen: HomeScreen }, 
    Settings: 
    { screen: SettingsScreen }, 
  } 
);

ScreenクラスとNavigationクラスのファイルを分ける場合、
App.jsは下のようになります。

import React, { Component } from 'react';
import { Text, View } from 'react-native';
import MainTabNavigator from './navigation/MainTabNavigator';

export default class App extends Component {
  render() {
    return (
        <MainTabNavigator />
    );
  }
}

navigationフォルダを作成して、

import React from 'react';
import { TabNavigator } from 'react-navigation';

import HomeScreen from '../screens/HomeScreen';
import SettingsScreen from '../screens/SettingsScreen';

export default TabNavigator(
  {
    Home: {
      screen: HomeScreen,
    },
    Settings: {
      screen: SettingsScreen,
    },
  },
)

HomeScreenは、screensフォルダの下に作成して、

import React, { Component } from 'react';
import { View, Text } from 'react-native';

class HomeScreen extends Component {
    render() {
        return (
            <View style={styles.container}>
                <Text>Home</Text>
            </View>
        );
    }
}

const styles = {
    container: {
      flex: 1,
      backgroundColor: '#fff',
      alignItems: 'center',
      justifyContent: 'center',
    },
};

SettingsScreenも同様に作成しましょう。

1点注意は、App.jsで、return ( <MainTabNavigator />)を<View>タグ等で括ってはいけません。例えば、return ( <View> <MainTabNavigator /></View>)はダメです。

1 Comment

  1. […] [ReactNative]React Navigatorの基本 […]

Comments are closed.

Scroll to top