CodeBlanks Logo Icon CodeBlanks

useState

useState ile state yönetimini öğrenirsin.

useState hook'u

useState bir bileşende değişebilen veriyi tutar. Buna state denir. State değiştiğinde bileşen yeniden render edilir ve ekrandaki görünüm güncellenir.

Sayaç projesinde useState'i görmüştün. Şimdi onu daha derinden inceleyeceğiz. Çağrı şöyledir: const [count, setCount] = useState(0). Burada count mevcut değer, setCount onu güncelleyen fonksiyon, 0 ise başlangıç değeridir.

İki değeri dizi olarak döndürdüğü için destructuring kullanırız. İlk değer okumak, ikincisi yazmak içindir. Doğrudan count = 5 yazmak state'i güncellemez; her zaman setter kullanılır.

State değişince yeniden render

Setter'ı çağırdığında React yeni değeri alır, bileşeni tekrar çalıştırır ve ekranı günceller. Bu yeniden render denen süreçtir. Eski değer kaybolur.

Örnek: setCount(count + 1) çağrısında count 3 ise, yeni değer 4 olur ve bileşen yeniden render edilir. Ekranda artık 4 görünür.

State her zaman setter ile güncellenir. Doğrudan atama yapma; yaparsan React değişikliği fark etmez ve ekran güncellenmez. Bu, yeni başlayanların en sık yaptığı hatadır.

Uygulama Metin state'i değiştir

Bir App bileşeni yaz. useState(true) ile bir on state'i tanımla. Ekranda {`{on ? 'Açık' : 'Kapalı'}`} yazan bir <Text> göster. App fonksiyonunu dışa aktar.

Başlangıç kodu

App.js
import { useState } from 'react';
import { Text } from 'react-native';

// bileşeni buraya yaz

Örnek çözüm

App.js
function App() {
  const [on, setOn] = useState(true);
  return <Text>{on ? 'Açık' : 'Kapalı'}</Text>;
}
export default App;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 useState ne döndürür?

  • Yalnızca bir sayı
  • Bir dizi: [değer, setter] Doğru cevap
  • Yalnızca bir fonksiyon
  • Bir nesne

Açıklama: ilk öğe mevcut değer, ikincisi setter'dır.

2 useState çağrısını tamamla

Soru
import { useState } from 'react';
import { Text } from 'react-native';

function App() {
  const [count, setCount] = ____;
  return <Text>{count}</Text>;
}
Cevap
import { useState } from 'react';
import { Text } from 'react-native';

function App() {
  const [count, setCount] = useState(0);
  return <Text>{count}</Text>;
}

Açıklama: useState(0) başlangıç değeri 0 olan state oluşturur.

3 useState parçalarını eşle

Kavram Anlamı
count Mevcut değer
setCount Setter fonksiyon
0 Başlangıç değeri
re-render State değişince olur

Başlangıç bölümündeki tüm dersler