Afficher un message après inscription dans NextJS
P粉909476457
2023-08-17 19:22:20
<p>J'ai une application NextJS 13 avec un formulaire d'inscription. L'API que j'intègre oblige les utilisateurs à vérifier leur adresse e-mail après leur inscription. Ce que je veux faire, c'est, une fois le formulaire d'inscription réussi, supprimer les champs du formulaire et afficher un message leur indiquant qu'ils doivent vérifier leur courrier électronique pour un e-mail de vérification, mais à la place, il redirige vers le formulaire de connexion. J'apprends actuellement NextJS, donc le code que j'utilise provient d'un exemple de référentiel. Est-il possible de le modifier pour afficher un message au lieu de rediriger vers la page de connexion ? </p>
<p>Ma page d'inscription ressemble à ceci :</p>
<pre class="brush:php;toolbar:false;">'utiliser le client'
importer { useForm } depuis 'react-hook-form'
importer { useUserService } depuis '@/app/_services'
exporter par défaut
fonction Registre() {
const userService = useUserService()
const { registre, handleSubmit, formState } = useForm()
fonction asynchrone onSubmit (utilisateur) {
attendre userService.register (utilisateur)
}
retour (
≪>
<formulaire
onSubmit={handleSubmit(onSubmit)}
>
<div className="col-span-full">
<étiquette
htmlPour="email"
>
adresse e-mail
</étiquette>
<entrée
type="e-mail"
{ ...s'inscrire("email") }
/>
</div>
<div className="col-span-full">
<étiquette
htmlPour="mot de passe"
>
mot de passe
</étiquette>
<entrée
type="mot de passe"
{ ...s'inscrire("mot de passe") }
/>
</div>
<div className="col-span-full pt-5">
<bouton
désactivé={formState.isSubmitting}
>
<span>S'inscrire</span>
</bouton>
</div>
</formulaire>
≪/>
)
}</pré>
<p>La fonction réellement enregistrée se trouve dans le fichier <code>useUserService</code>
<pre class="brush:php;toolbar:false;">register : async (utilisateur) =>
alertService.clear()
essayer {
wait fetch.post('/api/authentication/register', utilisateur);
routeur.push('/login');
} attraper (erreur) {
alertService.error(erreur);
}
},</pré>
Afin d'afficher le message sans rediriger vers la page de connexion, vous pouvez utiliser le hook useState pour gérer l'interface utilisateur en fonction du statut de réussite de l'inscription.
);