javascript 控制器获取输入参数缓慢,第二个onclick输入来自第一个onclick输入

roejwanj  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(95)

对于上下文,在我的第一次单击中,两个输入都为null。然后在我的第二次尝试onclick中,输入结果来自第一次单击。在我的第三次尝试onclick中,输入结果来自第二次单击。我想知道为什么会发生这种情况?似乎数据发送缓慢...我尝试输入await setData( data => ({...data, user_id: userId, user_name: userName}) ),但它不起作用。
我该如何修复这个问题?下面是我的代码,

export default function SenaraiJualan({ app, auth, sales, action = 'create', sale }) {

    const { data, setData, post, put, errors, reset } = useForm({
        user_id: sale?.user_id ?? '',
        user_name: sale?.user_name ?? '',
    });

    const handleSubmit = async (e, userId, userName) => {
        e.preventDefault()
        setData( data => ({...data, user_id: userId, user_name: userName}) )
        console.log('handleSubmit called')
        try {
            switch (action) {
                case "create":
                    await post(route("hantar.katalaluanpdf"))
                    Swal.fire({
                        text: "Kata laluan PDF telah berjaya dihantar",
                        icon: "success",
                    });
                    break;
            }
        } catch (error) {
            Swal.fire({
                text: error,
                icon: "error",
            });
        }
    };

    return (
                  ...........

                <button onClick={ (e) => handleSubmit(e, sale.user_id, sale.user_name )} >
                               <RiLockPasswordLine
                                        className=" h-4 w-4"
                                        data-tooltip-id="my-tooltip"
                                        data-tooltip-content="Hantar Kata Laluan"
                                />
                </button>
                 ...........

控制器

public function hantarpassword(Request $request)
    {
        // Email
        // user_id
        $user_id = $request->user_id;
        $user_name = $request->user_name;

        dd($user_id, $user_name);
        $user_name_upper = strtoupper($user_name);

        // Generate password for PDF
        $userId = substr($user_id, -4);
        $user_name2 = substr($user_name_upper, 0, 5);
        $password = $userId . $user_name2;

        Mail::send([], [], function ($message) use ($user_name, $password) {
            $message->to('jabri@devwiz.my');
            $message->from(config('mail.from.address'), config('mail.from.name'));
            $message->subject("Permintaan set kata laluan pdf baru... ");
            $message->html('<html> Tuan/Puan ' . $user_name . ', <html>
            <br> <html> Berikut adalah Kata Laluan anda untuk akses ke Dokumen RT: ' . $password . ' <br> <html>
            Jika anda tidak pernah membuat permintaan, email anda mungkin tersalah isi oleh orang lain. Anda boleh padam email ini dengan selamat.<html>');
        });
    }
qij5mzcb

qij5mzcb1#

我相信您正在使用react并试图设置状态值。如果是这种情况,状态需要时间来更改值;这就是为什么会出现这个问题,并且它的值不会在该函数中更改。

相关问题