ウェブサイト検索

reactjs - Nextjs v14 における useFormState と useForm


私は単に、react hook の useForm を react-dom の useFormState より使う場合のユースケースを理解しようとしています。Nextjs のドキュメントでは、組み込みの useFormState を使うことを推奨しているのを見ますが、新しいバージョンの Nextjs でアプリを作っている人々を見ると、多くの人が react hook の useForm を使っています。

私は両方の利点を理解しようとしています。useFormをzodと一緒に使用する際、クライアント側とサーバー側の両方でバリデーションを行うものもあることに気付きますが、useFormStateを使い、サーバー側だけでバリデーションを行う方が簡単で同じ結果が得られるように思えます。

回答 #1

私は useForm について何もお伝えできません。しかし useFormState には一つの目的しかありません。フォームアクション(Next.js サーバーアクション)から情報(戻り値)を提供することです。例えば、サーバーの状態を変更してサーバーアクションからのフィードバック(結果)にアクセスしたい場合に便利です。

回答 #2

"use client";
import { useFormState } from "react-dom";

async function increment(previousState: any, formData: FormData) {

  return previousState + 1;
}
export default function StatefulForm({}) {
  const [state, formAction] = useFormState(increment, 0);
  return (
    <form>
      {state}
      <button formAction={formAction}>Increment</button>
    </form>
  );
}

関連記事