useState'te fonksiyonel güncelleme (setState(prev => ...)) ne zaman gerekir?

Cevap

State güncellemeleri asenkron ve toplu (batched) işlenir. Yeni değer bir önceki değere dayanıyorsa, render anındaki eski değeri kullanmak hatalı sonuç verir.

// Yanlış: üçü de aynı "sayi" değerini görür, sonuç +1
setSayi(sayi + 1);
setSayi(sayi + 1);
setSayi(sayi + 1);

// Doğru: her biri bir öncekinin sonucunu alır, sonuç +3
setSayi(s => s + 1);
setSayi(s => s + 1);
setSayi(s => s + 1);

Fonksiyonel güncelleme ayrıca useEffect veya setInterval içinde eski değerin yakalanması (stale closure) sorununu da önler ve bağımlılık dizisini sadeleştirir.

  1. Virtual DOM nedir ve reconciliation nasıl çalışır?KolayReactFrontend
  2. Listelerde key prop neden önemlidir? Index kullanmak neden sorunludur?KolayReactFrontend
  3. Controlled ve uncontrolled component farkı nedir?KolayReactFrontend
  4. useEffect bağımlılık dizisi nasıl çalışır?OrtaReactFrontend
  5. useMemo ile useCallback arasındaki fark nedir?OrtaReactFrontend
  6. Gereksiz render'ları nasıl tespit eder ve önlersiniz?ZorReactFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle