Rumah > Soal Jawab > teks badan
P粉2835590332023-08-18 15:20:03
Anda perlu menetapkan enableReinitialize
untuk membenarkan Formik mengemas kini nilai apabila ia berubah.
const form = useFormik({ initialValues: ..., enableReinitialize: true //<-- 这里 });
Anda juga boleh menetapkan nilai terus dalam useEffect
sekali gus.
useEffect(() => { if (projectData && .../*其他条件*/) { form.setValues(projectData) } }, [projectData])
P粉1762037812023-08-18 12:57:56
Jika struktur data yang diterima daripada API sepadan dengan struktur borang, anda boleh menggunakan kaedah setValues
untuk menetapkan keseluruhan keadaan sekali gus.
Pastikan struktur data daripada respons API (struktur projectData
)与您的initialValues
sepadan.
Gunakan kaedah setValues
untuk mengemas kini semua nilai sekali gus.
const form = useFormik({ initialValues: { name: "", login: "", about: { age: "", rank: { silver: true, gold: false, global: false } } } }); const { setValues } = form; useEffect(() => { if (projectData) { setValues(projectData); } }, [projectData]); // 设置来自API的响应