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