#Update con react consumiendo api .net

1 messages · Page 1 of 1 (latest)

lunar token
#

Aqui te muestro mi codigo de react…

#
  const [editedMedic, setEditedMedic] = useState(medic);

  const handleInputChange = (e) => {
    const { name, value } = e.target;
    setEditedMedic({ ...editedMedic, [name]: value });
  };

  const handleSubmit = (e) => {
    e.preventDefault();
    axios.put(url + "Medic/Edit", editedMedic)
      .then(() => {
        alert('Medico actualizado con exito');
        onUpdate(editedMedic);
      })
      .catch(error => {
        console.error('Error actualizando medico: ', error);
        alert('Hubo un error al actualizar al medico.');
      })
  };

  if (!editedMedic) {
    return <div>Cargando...</div>;
  }

  return (
    <div className="App">
      <div className="container-fluid">
        <div className='row mt-3'>
          <div className='col-md-4 offset-4'>
            <h1>Actualizar Médico</h1>
            <form onSubmit={handleSubmit}>
              <label className="form-label">
                Nombre:
                <input
                  className="form-control"
                  type="text"
                  name="names"
                  value={editedMedic.names}
                  onChange={handleInputChange}
                />```
#

Tenia algo de esto!

#

Pero he ido cambiando de ayer a hoy pero tampoco puedo hacer eso.

sonic basin
#

dices que el problema es que no salen los datos del usuario en el form no?

#

puedes mostrar como estas cargando los datos en el estado?

lunar token
#

Cuando imprimo lo que lleva la variable editedMedics aparece, [object object] y di pongo editedMedics.phone, aparece undefined

sonic basin
#

pero el server retorna un json o un string con un json?

lunar token
#

Retorna un json, digamos: Data{ names: “ blabla”, }

sonic basin
#

puedes mostrar un console.log(editedMedics)

#

para entender que devuelve

lunar token
#

Vieras que ahora no estoy donde tengo la maquina y el proyecto, pero te juro que nada mas asi muestra, se lo pegue a chatgpt mira el error tal cual me lo muestra, en el console log al imprimir, editedMedics:

sonic basin
#

es que eso es lo que extraña

#

[object Object] no parece un objeto valido si lo estas imprimiendo con un console.log

#

Si quieres cuando puedas hacer el console.log

#

me mandas por acá el resultado

lunar token
#

Y hay algo mas, cuando hago un: editedMedics.data.names ahi si muestra el dato que aparece en la solicitud a la api, pero cuando recargo, manda error y desconoce la variable names…

#

Pero no tendria que funcionar, porque editedMedics ya tiene: response.data entonces, seria redundante hacer un: editedMedics.data.data.names

sonic basin
#

Hola, si, lo mejor es que puedas tener el codigo para ejecutarlo y poder entender que está pasando

#

porque de resto estariamos solo especulando que puede ser

lunar token
#

Que tal, si esta bien, cuando me conecte te escribo de nuevo xd

sonic basin
#

dale

lunar token
#

Que tal, perdon que hasta ahora pero he estado haciendo tareas.

#

si te das cuenta hay un console log debajo de la peticion get y tiene response.data que se setea a editedMedic y luego imprimo editedMedics y da asi como te habia comentado antes.

sonic basin
#

Hola

#

Ves que el log tiene una key data

#

entonces para acceder a names sería editedMedic.data.names

#

ahora si quieres no tener que escribirlo asi

#

debes hacer en la respuesta al axios.get setEditedMedic(response.data.data)

#

con eso podrás hacer editedMedic.names

lunar token
#

Justo así lo intente hace varios dias, pero al recargar la pagina desconoce la variable names asi:

sonic basin
#

Eso es normal que pase

#

debes verlo de la siguiente forma, cuando la pagina recien carga tu variable editedMedic es null

#

y si haces editedMedic.phone o editedMedic.loqueSea vas a tener el tipico error de la imagen

#

porque para javascript estas haciendo null.phone

#

para evitar eso, existe un operador editedMedic?.phone

#

para que si editedMedic es null, no intente leer la key phone

#

y lo mismo con cualquier otra key

lunar token
#

ah es normal

#

yo pense que eso era un error

sonic basin
#

es un error porque no validas si es null tu variable

lunar token
#

lo que nunca se me ocurrio, fue lo del signo de interrogacion, que si viene null que no haga nada

sonic basin
#

si lo validas, no va a fallar

#

exacto, con el signo ?. ya no fallaría

lunar token
#

tienes toda la razon, o sea solo eso me falto hacer jajja tanto que habia intentado°

#

Te lo agradezco bastante.

sonic basin
#

con gusto

lunar token
#

Muchas gracias, ahora solo veo como hago el update y ya, asi me llevo las demas!!!