Maison > Questions et réponses > le corps du texte
P粉2835590332023-08-18 15:20:03
Vous devez définir enableReinitialize
pour permettre à Formik de mettre à jour la valeur lorsqu'elle change.
const form = useFormik({ initialValues: ..., enableReinitialize: true //<-- 这里 });
Vous pouvez également définir la valeur directement dans useEffect
en une seule fois.
useEffect(() => { if (projectData && .../*其他条件*/) { form.setValues(projectData) } }, [projectData])
P粉1762037812023-08-18 12:57:56
Si la structure des données reçues de l'API correspond à la structure du formulaire, vous pouvez utiliser la méthode setValues
pour définir l'état complet en une seule fois.
Assurez-vous que la structure des données de la réponse de l'API (la structure de projectData
)与您的initialValues
correspond.
Utilisez la méthode setValues
pour mettre à jour toutes les valeurs en même temps.
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的响应