Tengo un formulario Ant en una aplicación React, donde algunos campos son obligatorios y otros no. Mi problema es que cuando el campo no requerido está vacío, el backend envía el error de validación. Mi pregunta es, ¿hay alguna manera de NO ENVIAR el valor del campo no requerido si no hay ningún valor?
Captura de pantalla del objeto actual que se envía:
Mi código para el envío del formulario:
const submitHandler = async (val: any) => { setLoading(true); try { let res: any = await API.put(`recipients/${pid}`, { ...val, user_id: loggedInUser.id, type: type, }); setLoading(false); message.success("Benutzer erfolgreich aktualisiert"); setError(""); } catch (error: any) { setLoading(false); setError(error?.response.data.message); message.error(error?.response.data.message); } };
idk sobre mecanografiado, pero así es como lo haría en javascript:
const submitHandler = async (val: any) => { ... for (let key in val) { if(!val[key]) delete val[key]; } ... };
Puede eliminar propiedades con valor vacío de ese val
antes de enviarlo al back-end. Una forma es hacerlo así:
let res = await API.put(`recipients/${pid}`, { ...Object.fromEntries(Object.entries(val).filter(([_, v]) => v)), user_id: loggedInUser.id, type: type, });