Inertia/React中用useForm删除后tr效果问题

问题描述 投票:0回答:1

我的惯性/反应有点问题。 问题是,当我从表中删除一条记录时,我希望 tr 具有淡出效果(或任何效果) 问题是,如果我尝试在成功中添加效果,效果将从下面的 tr 中获取。 我正在使用 useForm() 的 formDelete 方法。

这是代码:

const UsersContent = ({ users, flash }) => {
    const { delete: formDelete } = useForm();
    const [message, setMessage] = useState(flash.message);
    console.log(message);

    useEffect(() => {
        const timer = setTimeout(() => {
            setMessage(null);
        }, 3000);

        return () => clearTimeout(timer);
    }, [message]);

    const handleSubmit = (e) => {
        e.preventDefault();
        const userId = e.target.id;
        const tr = e.target.closest('tr');
        formDelete(route('users.destroy', userId), {
            onSuccess: () => {
                tr.classList.add('fadeout');
                setTimeout(() => {
                    tr.remove();
                }, 2000);
                setMessage({ tipo: 'success', testo: `Utente ${userId} cancellato correttamente` });
            },
            onError: () => {
                setMessage({ tipo: 'danger', testo: `Errore durante la cancellazione dell'utente ${userId}` });
            }
        });
    }

    return (//code )

谢谢大家。

我原本期望对 tr 产生影响,我会用 formDelete 删除它,但效果却被下面的 tr 收到了

reactjs laravel jsx inertiajs effects
1个回答
0
投票

尝试在你的handleSubmit中使用它

从'@inertiajs/react'导入{router};

router.reload({ 仅: ['用户'] })

https://inertiajs.com/partial-reloads

正如你在惯性.doc中看到的那样

ps: 甚至粘贴你的控制器以便更清晰

© www.soinside.com 2019 - 2024. All rights reserved.