Każdej z 4 opcji nawigatora przyporządkowujemy ekran o odpowiedniej nazwie. Jako domyślny ustawimy ekran przyporządkowany do nazwy Home, przypisując go do initialRouteName. Szerokość nawigatora ustawimy na 300 i ustawimy go z lewej strony ekranu głównego.
Na ekranie głównym natomiast umieścimy napis: To jest ekran startowy oraz ikonkę, po dotknięciu której z lewej strony wysunie się nasz nawigator.
HomeScreen.js
import React, {Component} from 'react';
import {StyleSheet, Text, View, TouchableHighlight} from 'react-native';
import { DrawerActions, } from 'react-navigation';
export default class HomeScreen extends Component {
static navigationOptions = {
drawerLabel: 'Home',
};
render() {
return (
<View style={styles.view}>
<TouchableHighlight style={styles.touchableHighlight} underlayColor={'rgba(0,0,0,0.8)'}
onPress={() => { this.props.navigation.dispatch(DrawerActions.openDrawer()); }}>
<Text style={styles.open}>OPEN </Text>
</TouchableHighlight>
<Text style={styles.text}> This is homescreen </Text>
</View>
);
}
}
Pozostałe ekrany będą miały różne kolory oraz przycisk, który kierować będzie do ekranu głównego:
Screen1.js, Screen2.js Scree3.js
import React, {Component} from 'react';
import {StyleSheet, Text, View, TouchableHighlight} from 'react-native';
export default class Screen1 extends Component {
render() {
return (
<View style={styles.view}>
<Text style={styles.text}> This is screen 1 </Text>
<TouchableHighlight onPress={() => this.props.navigation.goBack() } style={styles.touchableHighlight} underlayColor={'#f1f1f1'}>
<Text style={styles.text}>Go back</Text>
</TouchableHighlight>
</View>
);
}
}
Teraz zostało już tylko ustawić odpowiednie style.
A co jeśli chcielibyśmy dodać do naszego nawigatora więcej elementów? Przydałby mu się nagłówek, jakieś zdjęcie albo stopka. W takim przypadku możemy ustawić własny, spersonalizowany komponent, który będzie służył jako DrawerNavigator. W tym celu odrobinę zmodyfikujemy nasz nawigator:
Teraz możemy stworzyć dowolny wygląd, dodając np. nagłówek ze zdjęciem i odnośniki do innych ekranów, a także odpowiednie ikonki. W zasadzie, możemy tu dodać co chcemy, co sprawia, że nasz nawigator może być naprawdę ciekawy. Przykładowy kod poniżej:
Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.