登録フォームのある NextJS 13 アプリケーションがあります。私が統合している API では、ユーザーはサインアップ後に電子メールを確認する必要があります。私がやりたいのは、登録フォームが成功したら、フォームフィールドを削除し、確認メールをチェックする必要があることを伝えるメッセージを表示することですが、代わりにログインフォームにリダイレクトされます。私は現在 NextJS を学習しているため、使用しているコードはサンプル リポジトリから取得したものです。ログインページにリダイレクトせずにメッセージを表示するように変更することはできますか?
登録ページは次のようになります:
'クライアントを使用' import { useForm } from 'react-hook-form' import { useUserService } から '@/app/_services' エクスポートデフォルト登録 関数 Register() { const userService = useUserService() const { レジスタ、handleSubmit、formState } = useForm() 非同期関数 onSubmit(user) { userService.register(ユーザー)を待ちます } 戻る ( <> <フォーム onsubmit="{ハンドルサブミット(onSubmit)}"><ラベル htmlfor="電子メール"> 電子メールアドレス ラベル> <入力 type="電子メール" { ...登録("メール") }>入力><ラベル htmlfor="パスワード"> パスワード ラベル> <入力 type="パスワード" { ...登録("パスワード") }>入力><ボタン 無効="{formState.isSubmitting}"> 登録 ボタン>フォーム> > ) }
実際に登録された関数は useUserService
ファイルにあり、詳細は次のとおりです。
register: async (user) => { アラートサービス.clear() 試す { await fetch.post('/api/authentication/register', user); router.push('/login'); } キャッチ (エラー) { アラートサービス.error(エラー); } },ボタン> ラベル> ラベル> フォーム>
ログイン ページにリダイレクトせずにメッセージを表示するには、useStateフックを使用して、登録の成功ステータスに基づいて UI を管理します。
);