Espero que estés bien.
Tengo un problema sobre el que no puedo encontrar una respuesta concisa, así que voy a pedir ayuda aquí.
Tengo una función a la que intento llamar en mi componente React:
// Open up calendar day if today is equal to day in API. const [openCalendarBox, setOpenCalendarBox] = useState(''); // Call on post method via axios const openCalendarChocolateBox = async (event) => { event.preventDefault(); if (date) { // Url where to post await axios.post(`http://localhost:5001/open/chocolate`, { day: date, }); alert('New day is available to eat!'); } setOpenCalendarBox(''); }; openCalendarChocolateBox();Pero cuando llamo a la función, no funciona como se supone que debe hacerlo, en cambio, recibo este error en la consola:
Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'event.preventDefault')¿Cómo soluciono este problema? Intenté eliminar el parámetro de evento en mi argumento, pero aún quiero evitar que la página se vuelva a cargar más de una vez o en absoluto al llamar a mi función.
Gracias por cualquier ayuda de antemano, cuídense chicos.
Si desea cargar esto cuando se carga el componente, no necesita un detector de eventos. Simplemente mueva el código a un gancho useEffect() con una matriz de dependencia vacía (solo se ejecutará cuando se cargue el componente).
useEffect(() => { if (date) { // Url where to post await axios.post(`http://localhost:5001/open/chocolate`, { day: date, }); alert('New day is available to eat!'); } setOpenCalendarBox(''); }, []) Sin embargo, nuevo problema, ¿de dónde viene la date ?