Die FormData API erleichtert den Umgang mit Daten aus html-Forms in javascript/React erheblich.
Ausgangspunkt ist dieses Beispiel-Formular:
<form onSubmit={handleSubmit}>
<input type='text' name='name' />
<input type='email' name='email' />
<input type='password' name='password' />
</form>
Mit Controlled Inputs müssten für jeden Input die value- und onChange-Properties gesetzt, eine handleChange-Routine und ein State mit useState definiert werden. Beim Submit befinden sich die Form-Daten dann im State-Objekt.
Mit der FormData-API kann ohne weitere Vorkehrungen in der handleSubmit-Routine der gesamten Inhalt des Formulars als Objekt abgeholt werden:
function handleSubmit(e) {
e.preventDefault();
const formData = new FormData(e.currentTarget);
const formContent = Object.fromEntries(formData);
...
e.currentTarget.reset();
};
Dabei verweist e.currentTarget auf das Objekt, dem das Event zugewiesen ist, hier also die Form (und nicht der Button, der in e.target steckt).
Die Funktion Object.fromEntries wandelt das verschachtelte FormData-Array in ein Objekt aus name:value-Paaren um.
Mit .reset() werden die Eingaben im Formular am Ende wieder gelöscht.
Über die set- oder append-Methoden kann das Formular auch mit Daten vorbelegt werden.
Alle Einzelheiten der FormData-API findet man in der MDN-Dokumentation.