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

153
Vistas
No capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo 'estado')

este es mi primer proyecto en React. Tengo este elemento <DragDropContext onDragEnd={(result) => this.HandleOnDragEnd(result)}> y después de completar el arrastre llama a la siguiente función donde aparece el error:

 HandleOnDragEnd = (result) => { const requestOptions = { method: 'POST', headers: { "Content-type":"application/json", "Accept":"application/json", "Accept-Encoding":"gzip, deflate, br" } }; fetch(url, requestOptions) .then(function(response){ if(!response.ok) { return response.statusText; } else{ const items = [...this.state.sets]; const itemReordered = items.splice(result.source.index, 1); items.splice(result.destination.index, 0, itemReordered); this.setState({sets: items}); } }) }

El problema ocurre dentro de la instrucción else. Por alguna razón, cree que este estado no está definido. Hasta ahora, en todas partes que lo he comprobado, solo dice que enlace this con la función dentro del constructor o que use una función de flecha que tengo, por lo que no entiendo qué está causando este problema.

ACTUALIZAR 1

Puedo console.log(this.state.sets); al comienzo de la función, por lo que mi única suposición sería que no está definida dentro de la función .then por alguna razón. ¿Hay alguna forma de evitarlo?

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

El problema es que está utilizando function(){} en lugar de la función de flecha ( () => {} ).

De esta forma, la función no hereda this de su componente de clase, por lo que this está undefined .

Puede leer más sobre la función de flecha y this aquí en MDN .


Convierte tu function(){} en una función de flecha () => {}
o
.bind() su función usando this como parámetro (como function(){}.bind(this) )
para resolver el problema.

about 4 years ago · Santiago Gelvez 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