Wie schreibe ich eine Antwort von der API in das Formik-Formular?
P粉546257913
2023-08-17 17:33:34
<p>Wie schreibe ich die API-Antwort an Formik?
Ich habe eine API, über die ich Daten erhalte, die genau zu meinem Formular passen. Wie schreibe ich die gesamte Antwort auf einmal, anstatt mehrere setFieldValue-Zeilen zu verwenden? </p>
<pre class="brush:php;toolbar:false;">const form = useFormik({
Anfangswerte: {
Name: "",
Anmeldung: "",
um: {
Alter: "",
Rang: {
Silber: wahr,
Gold: falsch,-
global: falsch
}
}
}
}); // Meine ursprüngliche Form
const {
Werte,
handleChange,
setFieldValue,
} = bilden;
useEffect(() => {
if (!isEmpty(projectData)) {
Object?.keys(projectData)?.map((item: any, idx: number) => {
const key: any = Object.keys(item).at(-1);
setFieldValue(key, item[key]);
});
}
}, [projectData]); // API-Antwort festlegen</pre>
你需要设置
enableReinitialize
来允许Formik在更改时更新值。你也可以在
useEffect
中一次性直接设置值。如果从API接收到的数据的结构与表单的结构相匹配,您可以使用
setValues
方法一次性设置整个状态。确保来自API响应的数据结构(
projectData
)与您的initialValues
的结构相匹配。使用
setValues
方法一次性更新所有值。