在NextJS中註冊後顯示一則訊息
P粉909476457
P粉909476457 2023-08-17 19:22:20
0
1
434

我有一個帶有註冊表單的NextJS 13應用程式。我正在整合的API要求用戶在註冊後驗證他們的電子郵件。我想要做的是,一旦註冊表單成功,刪除表單欄位並顯示一條訊息,告訴他們需要檢查他們的電子郵件以獲取驗證電子郵件,但實際上它一直重定向到登入表單。我目前正在學習NextJS,所以我正在使用的程式碼是從一個範例儲存庫中獲取的。是否可能將其更改為顯示訊息而不是重定向到登入頁?

我的註冊頁面如下所示:

'use client' import { useForm } from 'react-hook-form' import { useUserService } from '@/app/_services' export default Register function Register() { const userService = useUserService() const { register, handleSubmit, formState } = useForm() async function onSubmit(user) { await userService.register(user) } return ( <> 
) }

實際的註冊函數位於useUserService文件中,具有以下詳細資訊:

register: async (user) => { alertService.clear() try { await fetch.post('/api/authentication/register', user); router.push('/login'); } catch (error) { alertService.error(error); } },
P粉909476457
P粉909476457

全部回覆 (1)
P粉204079743

為了在不重定向到登入頁面的情況下顯示訊息,您可以使用useState#鉤子根據註冊成功狀態來管理UI。

  1. 導入useState
    import { useState } from 'react';
  2. 新增一個註冊成功的狀態
    const [registrationSuccess, setRegistrationSuccess] = useState(false);
  3. 將註冊成功狀態設為true
    async function onSubmit(user) { await userService.register(user); setRegistrationSuccess(true); }
  4. 如果註冊成功,則渲染訊息
    return ( <> {registrationSuccess ? ( 

    请检查您的电子邮件以获取验证邮件。

    ) : (
    )}

    );

  5. 從註冊服務刪除router.push
    register: async (user) => { alertService.clear() try { await fetch.post('/api/authentication/register', user); } catch (error) { alertService.error(error); } },
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!