Temel Kullanım

1- İlk yapmamız gereken her zaman olduğu gibi bir src isimli source klasörü oluşturmak. Ve onun içinde de FirstScreen.js isimli ilk ekranımızı ekleyelim. (Bildiğimiz react-native component)

2- Aynı yerde bir tane de ekranlarımızı navigator'e register edeceğimiz, screen.js isimli bir dosya ekleyelim.

3- screen.js'den export ettiğimiz fonksiyonu kullanacağımız, projemizin ana çıkış kaynağı olan index.ios.js ve index.android.js isimli iki dosya oluşturalım.

4 - FirstScreen.js bildiğimiz bir react-native component onu screen.js de import edip, Navigasyon'da kullanacağımız bir ekran olduğunu aşağıdaki gibi belirtelim yani register edelim.

//  ./src/screen.js

import { Navigation } from 'react-native-navigation';
import FirstScreen from './FirstScreen';

export function registerScreens() {
  Navigation.registerComponent('chatapp.FirstScreen', () => FirstScreen);
}

5- Oluşturduğumuz index.ios.js ve index.android.js ' de ekranlarımızı App isimli class'da set edelim.

//  ./src/index.ios.js veya ./src/index.android.js

import { Navigation } from "react-native-navigation";

import { registerScreens } from "./screen";

registerScreens();

export default class App {
  constructor() {
    this.startApp();
  }

  startApp() {
    Navigation.startSingleScreenApp({
      screen: {
        screen: "chatapp.FirstScreen",  //screen.js deki ile aynı olmak zorunda
        title: "Chat App"
      }
    });
  }
}

6- App class'ını proje root path'inde yer alan index.ios.js ve index.android.js'de çalıştıralım. Tabi bu bir class olduğu için bunu normal fonksiyon olarak çağıramayız o yüzden bir değişkene set edip çağırmalıyız.

// index.ios.js veya index.android.js

import App from './src'

const app = new App();

7- Şimdi react-native run-ios ile ( Android kurulumunu yaptıysanız react-native run-android ile ) uygulamamızı çalıştaralım. Aşağıdaki gibi bir ekran görmeliyiz.

8- Yukarıda resimdeki görüntüyü ios ve android emulatorde elde ettiyseniz şimdi SecondScreen.js isimli ikinci ekran ekleyelim.Bunu da screen.js ' de import edip, Navigator'a aşağıdaki gibi register edelim.

import { Navigation } from 'react-native-navigation';
import FirstScreen from './FirstScreen';
import SecondScreen from './SecondScreen';

export function registerScreens() {
  Navigation.registerComponent('chatapp.FirstScreen', () => FirstScreen);
  Navigation.registerComponent('chatapp.SecondScreen', () => SecondScreen);
}

9 - FirstScreen.js componentine bir tane button ekleyelim ve bastığımızda uygulamayı ikinci ekrana route edelim. Navigator'a register ettiğimiz her component navigator isimli props'a sahip oluyor. Route ederken de navigator propsunda yer alan push u kullanıyoruz.

// ./src/FirstScreen.js
...
class FirstScreen extends Component {
  handleRoute = () => {
    this.props.navigator.push({
      screen: "chatapp.SecondScreen",
      title: "İkinci Ekran Başlık"
    });
  };
  render() {
    return (
      <View style={styles.container}>
        <Text>FirstScreen</Text>
        <TouchableOpacity style={styles.button} onPress={this.handleRoute}>
          <Text style={{ color: "#FFFFFF" }}> İkinci ekrana git </Text>
        </TouchableOpacity>
      </View>
    );
  }
}
...

results matching ""

    No results matching ""