> For the complete documentation index, see [llms.txt](https://uby-rn.gitbook.io/react-native/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uby-rn.gitbook.io/react-native/ders-2.1/react-navigation/stack-navigator.md).

# Stack Navigator

Stack navigator bir ekrandan diğerine geçmek için kullandığımız en basit ekran geçiş şeklidir. Stack Navigator kullanmak için aşağıdaki paketleri indirelim.

```bash
npm install @react-navigation/stack
```

```bash
npx expo install react-native-gesture-handler
```

Kurulumu tamamlamak için projemizin ana dizinine (App.js dosyamıza) aşağıdaki importu yapalım.

```jsx
import 'react-native-gesture-handler';
```

### Stack Oluşturmak

Gerekli indirmeler ve kurulumlar tamamlandıktan sonra stack oluşturmak için `@react-navigation/stack` kütüphanesini kullanarak `createStackNavigator` fonksiyonu ile Stack oluşturabiliriz.

```jsx
import { createStackNavigator } from '@react-navigation/stack';

const Stack = createStackNavigator();

function MyStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home" component={Home} />
      <Stack.Screen name="Notifications" component={Notifications} />
      <Stack.Screen name="Profile" component={Profile} />
      <Stack.Screen name="Settings" component={Settings} />
    </Stack.Navigator>
  );
}
```

Bu kod şu şekilde çalışır; Stack isimli değişkene createStackNavigator fonksiyonu kullanarak bazı özellikler verilir. Bu özellikler kullanılarak  `Stack.Navigator` ve `Stack.Screen` gibi komponentler açılabilir. `Stack.Navigator`, aynı yığında (Stack) bulunacak olan bir veya daha fazla ekranı bir arada tutmak için bir sarmalayıcıdır. `Stack.Screen` ise bu ekranlardan her biridir. Aynı yığın içinde bulunan ekranlar birbirleriyle haberleşebilirler.
