Чтобы упростить общие случаи для Actions, был добавлен новый хук под названием useActionState:
const [error, submitAction, isPending] = useActionState(
async (previousState, newName) => {
const error = await updateName(newName);
if (error) {
// Вы можете вернуть любой результат действия.
// Здесь мы возвращаем только ошибку.
return error;
}
// обработка успеха
return null;
},
null,
);useActionState принимает функцию (“Action”) и возвращает обернутое Action для вызова. Это работает, потому что Actions компонуются. Когда вызывается обернутое Action, useActionState вернет последний результат Action как данные и ожидающее состояние Action как pending.
Примечание:
React.useActionState ранее назывался ReactDOM.useFormState в Canary-релизах, но мы переименовали его и объявили useFormState устаревшим.
См. #28491 для получения дополнительной информации.
React DOM: Actions
Actions также интегрированы с новыми функциями <form> в React 19 для react-dom. Мы добавили поддержку передачи функций в свойства action и formAction элементов <form>, <input> и <button> для автоматической отправки форм с помощью Actions:
<form action={actionFunction}>Когда <form> Action завершается успешно, React автоматически сбрасывает форму для неуправляемых компонентов. Если вам нужно сбросить <form> вручную, вы можете вызвать новый API requestFormReset React DOM.
Для получения дополнительной информации см. документацию по react-dom для <form>, <input> и <button>.