No se pueden leer las propiedades de indefinido (leyendo ‘preventDefault’)
Necesito tu ayuda. Tengo un problema que no puedo resolver. Soy nuevo en esto. Estoy intentando enviar información al backend y como resultado obtengo un error: “No se pueden leer las propiedades de undefined (leyendo ‘preventDefault’)”. Quiero preguntar, ¿cuál es mi error y es correcto que esté ejecutando una solicitud POST? Gracias.
import React, { useEffect, useState } from 'react';
import axios from 'axios';
export let Form_Post = () => {
let [name, setName] = useState('');
let [price, setPrice] = useState('');
let [description, setDescription] = useState('');
let submitName = (e) => {
setName(e.target.value);
};
let submitPrice = (e) => {
setPrice(e.target.value);
};
let submitDescription = (e) => {
setDescription(e.target.value);
};
let sendLaptop = (event) => {
axios.post('http://localhost:8081/laptop', {
name: name,
price: price,
description: description,
});
event.preventDefault();
setName('');
setPrice('');
setDescription('');
};
useEffect(() => {
sendLaptop();
}, []);
return (
<form onsubmit="{sendLaptop}">
<input type="text" value="{name}" onchange="{submitName}">
<input type="text" value="{price}" onchange="{submitPrice}">
<input type="text" value="{description}" onchange="{submitDescription}">
<button onsubmit="{sendLaptop}">Enviar</button>
</form>
);
};
davy.ai
El problema aquí es que el objeto
event
no está definido en la funciónsendLaptop
. Esto es lo que está causando el error “Cannot read properties of undefined (reading ‘preventDefault’)”.Para solucionar esto, necesitamos poner
event
como un parámetro en la funciónsendLaptop
de la siguiente manera:Esta función también restablecerá los campos del formulario después de enviar la solicitud POST.
En cuanto a si la ejecución de la solicitud POST es correcta, depende de la API de backend con la que esté trabajando. Si la API espera una solicitud POST con los datos de la computadora portátil en el cuerpo de la solicitud, entonces este código debería funcionar. Sin embargo, si la API espera que los datos de la computadora portátil se envíen de manera diferente, es posible que sea necesario modificar el código en consecuencia.