Чтобы упростить общие случаи для 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>.


Назад