Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

101
Vistas
La página no se vuelve a cargar en el cambio de estado dentro de jsx

He visto varias preguntas con el mismo titulo pero no el mismo problema,

Escribí un código de reacción y dentro del jsx del método de retorno, dentro de select onchange llamé a una función que establece el estado pero la página no se recargará aunque me aseguré de que el estado cambie

código jsx dentro de retorno:

<select defaultValue={book.shelf} onChange={(e) => this.handleChange(e, book)}

código dentro del constructor

 constructor(props) { super(props); this.handleChange = this.handleChange.bind(this);}

código dentro del componente

 handleChange = (e, book) => { BooksAPI.update(book, e.target.value).then(this.setState( { value: e.target.value, book: book }, () => console.log(this.state.value) ));

};

Sabiendo que this.state.value se imprime correctamente y el valor se devuelve desde la API y es diferente del valor del estado anterior

Cual podría ser el problema,

Cualquier ayuda apreciada.

Editar: mi código de selección completo

 <select defaultValue={book.shelf} onChange={(e) => handleChange(e, book)}> <option value="move" disabled> Move to... </option> <option value="currentlyReading"> Currently Reading </option> <option value="wantToRead">Want to Read</option> <option value="read">Read</option> <option value="none">None</option> </select>

Edición 2:

este es mi estado

 state = { books: [], value: '', book: {}, update: false, };

Edición final:

Para evitar confusiones, el problema estaba en mi interfaz de usuario no relacionada con este código

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

el problema es este

 handleChange = (e, book) => { BooksAPI.update(book, e.target.value).then(this.setState( { value: e.target.value, book: book }, () => console.log(this.state.value) ));

cambiarlo a este

 handleChange = (e, book) => { BooksAPI.update(book, e.target.value).then(() => { this.setState( { value: e.target.value, book: book }, () => console.log(this.state.value) ) });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda