React useActionState Hook Cheat Sheet

What is `useActionState`?

A hook for managing form-like actions that return new state after an async operation — great for form submissions, validation, etc.

import { useActionState } from "react";

Basic Syntax

const [state, formAction, isPending] = useActionState(async (prevState, formData) => {
  // handle action
  return newState;
}, initialState);

Example: Async Form Submission

const [status, submit, isPending] = useActionState(
  async (prevStatus, formData) => {
    const res = await fetch("/api/submit", {
      method: "POST",
      body: formData
    });
    if (!res.ok) return "Error submitting form";
    return "Form submitted successfully";
  },
  null
);
<form action={submit}>
  <input type="text" name="name" />
  <button disabled={isPending}>Submit</button>
</form>

{status && <p>{status}</p>}