CodeBlanks Logo Icon CodeBlanks

Özet - react-hook-form

İsim ve e-posta alanlı doğrulamalı bir kayıt formu yazarsın.

Özet - react-hook-form

Bu grupta react-hook-form'un ne olduğunu, register ve handleSubmit kullanımını ve Zod ile model doğrulamayı öğrendin. Şimdi bunları birleştirme zamanı.

Tipik akış: useForm çağır, register ile alanları bağla, handleSubmit ile gönder, hataları formState.errors ile göster. Zod modelsı ile doğrulamayı merkezi yap.

Bir sonraki adımda isim ve e-posta alanlı doğrulamalı bir kayıt formu yazacaksın.

Uygulama Kayıt formu yaz

Aşağıdaki iskeleti tamamla. RegistrationForm bileşeni yaz. const formModel = z.object({ name: z.string().min(2), email: z.string().email() }); tanımla. useForm({ resolver: zodResolver(formModel) }) çağır; register, handleSubmit ve formState: { errors } al. <form onSubmit={handleSubmit(onSubmit)}> içinde iki input (name ve email) ve {errors.name &&

Ad gerekli

} koy. <button type="submit">Kaydol</button>. onSubmit = (data) => console.log(data). export default ekle.

Başlangıç kodu

App.jsx
import { useForm } from 'react-hook-form';
import { z } from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';

// RegistrationForm bileşenini buraya yaz

Örnek çözüm

App.jsx
import { useForm } from 'react-hook-form';
import { z } from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';

const formModel = z.object({
  name: z.string().min(2),
  email: z.string().email(),
});

function RegistrationForm() {
  const { register, handleSubmit, formState: { errors } } = useForm({ resolver: zodResolver(formModel) });
  const onSubmit = (data) => console.log(data);
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input {...register('name')} />
      {errors.name && <p>Ad gerekli</p>}
      <input {...register('email')} />
      <button type="submit">Kaydol</button>
    </form>
  );
}

export default RegistrationForm;

Soru ve cevaplar

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

1 Bu grupta işlenmeyen konu?

  • register
  • handleSubmit
  • zodResolver
  • useTransition Doğru cevap

Açıklama: useTransition bu grupta işlenmedi.

2 handleSubmit kullanımı

Soru
<form onSubmit={____(onSubmit)}>
Cevap
<form onSubmit={handleSubmit(onSubmit)}>

Açıklama: handleSubmit gönderimi sarar.

İleri seviye bölümündeki tüm dersler