Aquí tengo 3 entradas de correo, si un usuario quiere completar 1 entrada con su entrada, entonces solo esa entrada en particular que será completada por el usuario debe enviarse al backend. por favor ayuda! :)
const App =() => { const [email,setEmail]=useState(""); const [emailEA,setEmailEA]=useState(""); const [emailFoo,setEmailFoo]=useState(""); const submitEmail={ Axios.post("http://localhost:3001/",{email,emailEA,emailFoo}) } return ( <div className="App"> <Navbar/> <Banner/> <input className="email" value={email} onChange={(e)=>{ setEmail(e.target.value) }} placeholder="Your email address" /> <TailorMadeServices/> <WhyUs/> <Testimonial/> <Hearit/> <EarlyAcc/> <input value={emailEA} placeholder="Your Email Address" onChange={(e)=>{ setEmailEA(e.target.value) }} className="eainput1" /> <Footer/> <input className="fmail" placeholder="Your Email Address" value={emailFoo} onChange={(e)=> { setEmailFoo(e.target.value) } } /> </div> );Utilice este código en submitEmail de correo electrónico.
// test values const email = 'email@test.com' const emailFoo = '' const emailEA = 'emailEA@test.com' const emails_to_send = {email, emailFoo ,emailEA} for(const email in emails_to_send){ if(!emails_to_send[email].match(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/g)) delete emails_to_send[email] } // Axios.post("http://localhost:3001/",emails_to_send) console.log(emails_to_send) Nota : elimine el comentario de la línea axios.post mientras usa este código.
Nota : aunque el código funciona correctamente, creo que enviar correos electrónicos sin completar al backend no debería ser un problema.