React Native uygulamanızda birden fazla sayfa oluştuduğunuz sayfalar arası geçiş yapmak için React Navigation paketi kullanılır. React Navigation paketini kurma komutu;
npm install @react-navigation/native
Gerekli bağımlı paketleri de yüklemeniz gerekiyor.
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view
React Navigation için 3 modül bulunmaktadır; Drawer, Tab ve Stack. Bu örneğimizde Stack yapısı ile sayfalar arası geçiş işlemini yapalım.
Stack modülü(@react-navigation/stack)’nü yükleme;
npm install @react-navigation/stack
2 sayfası arası geçiş ise şu şekilde yapılır; Öncelikle App.js’i güncelleyin.
import 'react-native-gesture-handler'; import * as React from 'react'; import {NavigationContainer} from '@react-navigation/native'; import {createStackNavigator} from '@react-navigation/stack'; import FirstScreen from './FirstScreen'; import SecondScreen from './SecondScreen'; const Stack = createStackNavigator(); const App = () => { return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="FirstScreen" component={FirstScreen} /> <Stack.Screen name="SecondScreen" component={SecondScreen} /> </Stack.Navigator> </NavigationContainer> ); }; export default App;
FirstScreen.js isimli dosya oluşturun;
import React, {Component} from 'react'; import {View, Button} from 'react-native'; export default class FirstScreen extends Component { constructor(props) { super(props); this.state = {}; } render() { return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center', }}> <Button title="Navigate" onPress={() => this.props.navigation.navigate('SecondScreen')} /> </View> ); } }
SecondScreen.js isimli dosya oluşturun;
import React, {Component} from 'react'; import {View, Text} from 'react-native'; export default class SecondScreen extends Component { constructor(props) { super(props); this.state = {}; } render() { return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center', }}> <Text> Second Screen </Text> </View> ); } }
selam…bu yazınızdaki bilgiler şu an için de geçerli midir?..değişiklikler varsa önerilerinizi bekliyorum…saygılarımla
yukardaki örneği siz denediniz mi..bende çalışmadı..tüm paketleri yüklememe rağmen..