useActionState() și useFormStatus() – Gestiunea Formularelor de Server în Next.js

Sintaxă
const [state, formAction, isPending] = useActionState(action, initialState);
const { pending } = useFormStatus();

Hook-urile useActionState() (care înlocuiește vechiul useFormState) și useFormStatus() simplifică gestionarea formularelor conectate la Server Actions, oferind acces direct la erorile de validare, valorile returnate și starea de trimitere în curs.

'use client';
import { useActionState } from 'react';
import { useFormStatus } from 'react-dom';
import { inregistrareUtilizator } from '@/actions/auth';

function ButonTrimite() {
  const { pending } = useFormStatus();
  return (
    <button type="submit" disabled={pending}>
      {pending ? 'Se procesează...' : 'Creare Cont'}
    </button>
  );
}

export function FormularInregistrare() {
  const [state, formAction] = useActionState(inregistrareUtilizator, { error: null });

  return (
    <form action={formAction}>
      <input name="email" type="email" required />
      {state.error && <p className="text-red-500">{state.error}</p>}
      <ButonTrimite />
    </form>
  );
}

Atenție: Componenta care utilizează useFormStatus() trebuie să fie întotdeauna un copil direct sau descendent al elementului <form> pentru a putea citi contextul formularului.

Parametri cheie

  • state: Ultimul rezultat returnat de funcția Server Action.
  • formAction: Funcția transmisă atributului action al formularului.
  • pending: Boolean ce indică dacă cererea asincronă este în desfășurare.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: useActionState() și useFormStatus() – Gestiunea Formularelor de Server

Ai o nelămurire despre utilizarea comenzii useActionState() și useFormStatus() – Gestiunea Formularelor de Server sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.