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

232
Vistas
Reaccionar: no se puede actualizar el segmento de estado, pero otras propiedades de estado funcionan bien

Usando estas dos piezas de estado:

 this.markerArray = []; this.arrayLength = 0;

Estoy tratando de usar esta función:

 getMarkers = () => { this.dbRef.get().then((snapshot) => { snapshot.docs.forEach((marker) => { if (!this.markerArray.includes(marker.id)) { let currentID = marker.id; let appObj = { ...marker.data(), ["id"]: currentID, }; this.markerArray.push(appObj); } }); this.setState({ markerArray: this.markerArray, }); // (problem code) this.setState({arrayLength: this.markerArray.length}) return this.markerArray; }); };

Para actualizar una lista de marcadores de mapa. Estoy tratando de actualizar this.arrayLength cuando cambia la longitud de this.markerArray. Creo que el problema tiene que ver con la naturaleza asíncrona de setState, pero no sé qué hacer con esa información.

Yo he tratado:

  1. Creando una función separada para establecer arrayLength
  2. Pasar esa función como devolución de llamada al establecer el estado de markerArray
  3. Llamar a la función en Render (bucle infinito)
  4. Establecer arrayLength en el mismo setState que markerArray
  5. Cambiar el valor inicial de arrayLength a nulo, 0 y ''

Incluso intenté establecer arrayLength en un número arbitrario que no depende de markerArray.length, pero no se actualizará.

about 4 years ago · Juan Pablo Isaza
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