useActionState ve useFormStatus
Bekleyen durumu ve hataları izlemek için useActionState'i, işlem sırasında gönderme düğmelerini devre dışı bırakmak için useFormStatus'u kullanın.
useActionState ve useFormStatus, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
useActionState Kancasını Tanıtma
useActionState(action, initialState), bir Sunucu Eylemini sarmalayarak gönderimler arasındaki durumunu izleyen bir React 19 kancasıdır. Eylem işlevini ve başlangıç durumu değerini alır ve form deneyiminin tamamını yönlendirmek için kullanabileceğiniz bir demet döndürür.
Döndürülen Demet
Kanca [state, formAction, isPending] değerini döndürür. state, eylemin en son döndürdüğü değeri tutar; başlangıçta null veya başlangıç değerinizdir. formAction, forma aktaracağınız sarmalanmış eylemdir. isPending, eylem sunucuda yürütülürken true değerindedir.
Gönderimler Arasında Durumu İzleme
Form her gönderildiğinde Sunucu Eylemi çalışır ve döndürdüğü değer yeni state olur. İlk oluşturma sırasında state, initialState değerine eşittir. Bu, daha önce gönderim yapılıp yapılmadığına ve gönderimlerin ne döndürdüğüne bağlı olarak farklı arayüzler göstermeyi kolaylaştırır.
Satır İçi Doğrulama Hatalarını Gösterme
Sunucu Eylemi { errors: { email: 'Invalid email' } } döndürürse hatayı satır içinde görüntüleyebilirsiniz: {state.errors?.email && <p>{state.errors.email}</p>}. Durum yeniden oluşturma işlemleri arasında korunduğu için hata iletisi, bir sonraki başarılı gönderim durumu değiştirene kadar görünür kalır.
Başarı İletilerini Gösterme
Eylem { success: true } döndürdüğünde bileşen bir başarı iletisi oluşturabilir: {state?.success && <p>Form submitted!</p>}. Form, durum değerine bağlı olarak koşullu şekilde gizlenebilir veya başarı iletisiyle değiştirilebilir.
useFormStatus Kancasını Tanıtma
useFormStatus(), en yakın üst <form> öğesinin bekleme durumunu okuyan bir kancadır. { pending: boolean } dahil olmak üzere bir nesne döndürür. Bu kanca, formu oluşturan bileşenin kendisinde değil, formun alt bileşeni olan bir bileşenin içinde kullanılmalıdır.
Konum Kısıtlamasının Nedeni
useFormStatus kancasının formun içinde kullanılması zorunludur; çünkü kanca formun bağlamını kendisinin üstündeki React ağacından okur. Formu oluşturan bileşenin içinde çağrılırsa formun alt öğesi değil, formun kardeşi olur ve formun durumuna erişemez.
Gönderme Düğmesi Bileşeni Oluşturma
Standart yaklaşım, gönderme düğmesini kendi bileşenine ayırmaktır: function SubmitButton() { const { pending } = useFormStatus(); return <button disabled={pending}>Submit</button>; }. Ardından bu bileşen formun içine yerleştirilir ve formun bekleme durumuna erişmesi sağlanır.
Gönderme Düğmesini Devre Dışı Bırakma
Gönderme düğmesinde disabled={pending} ayarını yapmak, yinelenen gönderimleri önler. Kullanıcı gönderme düğmesine tıkladığında ve Sunucu Eylemi yürütülürken pending değeri true olur; düğme devre dışı kalır ve tıklanamaz. Eylem tamamlandığında pending yeniden false olur ve düğme tekrar etkinleşir.
Her İki Kancayı Birleştirme
Tam form kullanıcı deneyimi kalıbı her iki kancayı birleştirir: Form bileşenindeki useActionState eylem sonucunu izler ve formAction değerini sağlarken, alt bileşen olan SubmitButton içindeki useFormStatus bekleme durumunu izler. Birlikte, doğrulama hatalarının görüntülenmesini ve duyarlı bir gönderme düğmesini sağlarlar.
useOptimistic ile İyimser Arayüz
Daha da duyarlı bir deneyim için useOptimistic, useActionState ile birlikte kullanılabilir. Sunucu yanıt vermeden önce beklenen sonuçla arayüzü hemen günceller, ardından gerçek yanıt geldiğinde durumu uzlaştırırsınız. Bu yaklaşım beğenme düğmelerinde, görev listelerinde ve hızlı geri bildirim gerektiren diğer etkileşimlerde yaygındır.
useFormStatus Konumu
Doğru çalışması için useFormStatus nerede çağrılmalıdır?
Ders Özeti
useActionState(action, initialState), Sunucu Eylemi sonuçlarını izlemek için [state, formAction, isPending] değerini döndürür. Durum, eylemin döndürdüğü değeri tutarak satır içi hata ve başarı iletilerinin görüntülenmesini sağlar. useFormStatus(), formun alt bileşenleri içinde { pending } değerini sağlayarak duyarlı gönderme düğmelerinin oluşturulmasına olanak tanır. Her iki kanca birlikte eksiksiz ve erişilebilir bir form deneyimi oluşturur.
Sıkça Sorulan Sorular
“useActionState ve useFormStatus” dersi ücretsiz mi?
Evet — “useActionState ve useFormStatus” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“useActionState ve useFormStatus” dersinde ne öğreneceğim?
Bekleyen durumu ve hataları izlemek için useActionState'i, işlem sırasında gönderme düğmelerini devre dışı bırakmak için useFormStatus'u kullanın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“useActionState ve useFormStatus” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- React 19 ve Next.js'te Sunucu Eylemleri
- Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme
- useActionState ve useFormStatus
- Sunucu Eylemleriyle Aşamalı Geliştirme