CodeBlanks Logo Icon CodeBlanks

Çoklu state

Birden çok state değişkeni öğrenirsin.

Birden çok state

Bir bileşende birden çok state olabilir. Her bağımsız değer için ayrı bir useState çağrısı yaparsın. Örneğin bir formda ad ve e-posta için iki ayrı state.

Örnek: const [name, setName] = useState(''); ve const [email, setEmail] = useState('');. Birini güncellemek diğerini etkilemez; her biri bağımsız yeniden render tetikler.

Birden çok state iyi organize eder; ilgili değerleri bir nesnede toplamak da bir seçenektir. Bunu Obje state dersinde göreceğiz. Şimdilik bağımsız değişkenler için ayrı useState'i öğreneceğiz.

State'ler bağımsızdır

Birden çok state'in her biri bağımsızdır. Birini güncellemek diğerini etkilemez. Örneğin setName('Ayşe') çağrısı yalnızca name'i değiştirir; email aynı kalır.

Yine de her ikisi de aynı bileşende olduğu için, biri değişince bileşen yeniden render edilir ve her ikisi de güncel değerle görünür. Bu, senkron görüntü sağlar.

Eğer iki değer her zaman birlikte değişiyorsa, bunları tek bir nesnede toplamak daha temiz olabilir. Aksi halde ayrı tutmak okunabilirliği artırır.

Uygulama Ad ve e-posta formu

Bir App bileşeni yaz. name ve email için iki ayrı useState('') tanımla. İki <Text> ile değerleri göster. App fonksiyonunu dışa aktar.

Başlangıç kodu

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

// formu buraya yaz

Örnek çözüm

App.js
function App() {
  const [name, setName] = useState('Ayşe');
  const [email, setEmail] = useState('ayse@example.com');
  return (
    <>
      <Text>{name}</Text>
      <Text>{email}</Text>
    </>
  );
}
export default App;

Soru ve cevaplar

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

1 İki state'i nasıl yönetirsin?

  • State kullanılamaz Doğru cevap
  • Tek useState ile olmaz
  • Yalnızca bir state tutulur
  • İki ayrı useState çağrısı ile

Açıklama: her bağımsız değer için ayrı useState yazılır.

2 İkinci state'i ekle

Soru
import { useState } from 'react';

function App() {
  const [name, setName] = useState('');
  const [____, setEmail] = useState('');
}
Cevap
import { useState } from 'react';

function App() {
  const [name, setName] = useState('');
  const [email, setEmail] = useState('');
}

Açıklama: email ikinci state değeridir.

3 Çoklu state eşleştirmesi

Kavram Anlamı
name Ad state'i
setName Ad setter'ı
email E-posta state'i
setEmail E-posta setter'ı

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