CodeBlanks Logo Icon CodeBlanks

Birden çok alan

Aynı state ile birden çok form alanını yönetmeyi öğrenirsin.

Birden çok alan

İki veya üç alanı yönetmenin en temiz yolu tek bir nesne state'tir: const [form, setForm] = useState({name: "", email: ""}).

Tek bir handleChange yazıp alan adını kullanarak güncellersin. Bu, kod tekrarını azaltır.

İleride React Hook Form bu yaklaşımı otomatikleştirir; şimdilik temeli öğreniyoruz.

Tek handler yaklaşımı

Her input'a name özniteliği verip tek handler'da alan adına göre güncellersin: setForm(f => ({...f, [e.target.name]: e.target.value})).

Burada [e.target.name] hesaplanan özelliktir (computed property); adı dinamik olarak belirler. Bu yazımı ileride göreceğiz.

Bu yaklaşım, on alanlı bir formda bile tek handler yeterli kılar.

Uygulama İki alanlı form

Aşağıdaki iskeleti tamamla. SignupForm bileşeni yaz; useState'i içe aktar. const [form, setForm] = useState({name: "", email: ""}); tanımla. <form> içinde iki input döndür: biri value={form.name}, diğeri value={form.email}. Dışa aktar.

Başlangıç kodu

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

// SignupForm bileşenini buraya tanımla

Örnek çözüm

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

function SignupForm() {
  const [form, setForm] = useState({ name: "", email: "" });
  return <form><input value={form.name} /><input value={form.email} /></form>;
}

export default SignupForm;

Soru ve cevaplar

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

1 İki alanı tutmanın en temiz yolu nedir?

App.jsx
Object state updates with spread.
  • tek nesne useState Doğru cevap
  • iki ayrı prop
  • İki ayrı useState
  • global değişken

Açıklama: İlişkili alanlar tek nesnede toplanır.

2 Birden çok alan: eksik parçayı tamamla

Soru
setForm(f => ({ ...f, email: ____ }))
Cevap
setForm(f => ({ ...f, email: e.target.value }))

Açıklama: email alanını güncel metinle yazdın.

3 Birden çok alan: kavramları eşleştir

Kavram Anlamı
name özniteliği Alan adı
[e.target.name] Hesaplanan özellik
...f Eski alanlar
setForm Nesne güncelleyici

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