React 19 Actions and Form Status Hooks
Learn how React 19's Actions, useActionState, and useFormStatus streamline handling async form submissions and pending states.
React 19 introduced Actions — async functions that can be passed directly to a <form>'s action prop (or used with useTransition) — which React automatically manages the pending state, errors, and optimistic updates for, without hand-wiring isSubmitting flags and try/catch blocks around every form submission handler yourself. Passing an async function directly as a form's action lets React intercept the native form submission and treat it as a transition-managed asynchronous operation.
React 19 Actions are like a hotel's automated room-service tracking system: instead of every individual staff member manually radioing in 'order placed,' 'order in progress,' 'order delivered' for each request (hand-rolled state), the system itself tracks an order's status end to end, and any staff member (a nested child component) can simply check the system's current status without needing someone to have explicitly told them.