CodeBlanks Logo Icon CodeBlanks

State güncelleme

Setter ile state'i güncellemeyi ve eski değeri kullanmayı öğrenirsin.

State güncelleme

State'i güncellemek için güncelleyici fonksiyonu çağırırsın: setCount(count + 1). Bu, yeni değeri hesaplar ve React'e bildirir; React yeniden çizer.

Yeni değer eski değere bağlıysa fonksiyon formu daha güvenlidir: setCount(c => c + 1). Bu, arka arkaya yapılan güncellemelerde karışıklığı önler.

State'i doğrudan değiştirme: count++ yanlış. React değişikliği görmez; her zaman güncelleyiciyi kullan.

Yeniden çizim

Güncelleyici çağrılınca React yeni değeri zamanlar ve bileşeni yeniden çizer. Çizim hemen değil, bir sonraki "tick"te olabilir; bu yüzden arka arkaya çağrılar birikebilir.

Bu yüzden eski değere bağlı güncellemelerde fonksiyon formu setCount(c => c + 1) önerilir. Her çağrı en güncel değeri alır.

Yeniden çizim ucuzdur; React yalnızca değişen kısmı DOM'a yazar.

Uygulama Artırmalı sayaç

Aşağıdaki iskeleti tamamla. Step bileşeni yaz; useState'i içe aktar. const [n, setN] = useState(0); tanımla. handleUp fonksiyonu içinde setN(n => n + 1) çağır. <button onClick={handleUp}>{n}</button> döndür. Dışa aktar.

Başlangıç kodu

App.jsx
import { useState } from "react";

// Step bileşenini buraya tanımla

Örnek çözüm

App.jsx
import { useState } from "react";

function Step() {
  const [n, setN] = useState(0);
  function handleUp() { setN(n => n + 1); }
  return <button onClick={handleUp}>{n}</button>;
}

export default Step;

Soru ve cevaplar

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

1 Aşağıdakilerden hangisiyle count bir artar?

App.jsx
The updater function changes the state.
  • setCount(count + 1) Doğru cevap
  • count = count + 1
  • count++
  • setCount = count + 1

Açıklama: setCount(count + 1) yeni değeri React'e bildirir.

2 State güncelleme: eksik parçayı tamamla

Soru
setCount(____)
Cevap
setCount(count + 1)

Açıklama: Mevcut değere bir ekledin.

3 State güncelleme: kavramları eşleştir

Kavram Anlamı
setCount(c => c+1) Fonksiyon formu
count++ Yanlış değişim
setCount(0) Sıfırlama
yeniden çizim Re-render

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