Estoy guardando datos en este estado, pero me gustaría enviar "coincidencias" al servidor solo si una variable es verdadera, ¿cómo puedo hacerlo?
¡Gracias por adelantado!
const [formData, setFormData] = useState({ user_id: cookies.UserId, first_name: "", dob_day: "", dob_month: "", dob_year: "", show_gender: false, gender_identity: "man", gender_interest: "woman", url: "", about: "", matches: [] // send only if variable is true })Puede escribir la parte de envío dentro de un efecto de uso.
useEffect( () => { yourVariable && sendingFucntion(); }, [yourVariable] )Elimine las matches de su declaración de estado predeterminada, luego, en su condición, intente algo como esto:
if(true /** your condition */) { setFormData({ ...formData, /** current data*/ matches:[] /** add your key matches with correct array value.*/ }) }Supongo que probablemente algo como esto? :
if(matchsArray && Array.isArray(matchsArray) && matchsArray.length > 0) { setFormData({ ...formData, /** current data*/ matches:matchsArray /** add your key matches with correct array value.*/ }) }No olvide poner su estado de datos en un FormData real para construir su solicitud POST después. Me gusta :
const finalFormData = new FormData() finalFormData.append( 'data', /** your key catch by your backend api*/ formData /** the react state*/ )Avísame si te es de ayuda. :)