フォームのバリデーション
このガイドでは、簡単なサインアップフォームの実装について説明します。これらの概念は、サードパーティのバリデーションライブラリやエラーコンポーネントと組み合わせて使用することが多いと思いますが、このガイドではReact Routerの動作部分にのみ焦点を当てます。
1. セットアップ
まず、フォーム付きの基本的なサインアップルートを作成します。
2. アクションの定義
このステップでは、Signup
コンポーネントと同じファイルにサーバーのaction
を定義します。ここでの目的は、フォームのバリデーションルールやエラーオブジェクトの構造を深く掘り下げるのではなく、関連するメカニズムの概要を説明することです。メールとパスワードの基本的なチェックを使用して、コアとなる概念を説明します。
バリデーションエラーが見つかった場合、それらはaction
からフェッチャーに返されます。これは、UIに修正が必要なことを知らせるための方法です。そうでない場合、ユーザーはダッシュボードにリダイレクトされます。
data({ errors }, { status: 400 })
の呼び出しに注目してください。400ステータスを設定することは、バリデーションエラー(不正なリクエスト)があったことをクライアントに知らせるためのWeb標準の方法です。React Routerでは、200ステータスコードのみがページデータの再検証をトリガーするため、400はそれを防ぎます。
3. バリデーションエラーの表示
最後に、Signup
コンポーネントを修正して、fetcher.data
からバリデーションエラー(存在する場合)を表示します。