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

116
Vistas
el folleto de reacción no muestra el estado actualizado

Estoy obteniendo datos del almacenamiento de mi dispositivo y quiero mostrar los datos en un mapa. Pero cuando actualizo mi objeto de estado this.coords.path dentro de mi función showPics() solo se muestra el marcador de prueba en {lat:1,lng:1} todas las demás coordenadas se envían a this.coords.path pero no se muestran. ..

Lo probé con sampleData -array para probar el código básico -> el bucle y todo funciona, pero no cuando actualizo el objeto de estado con nuevos datos...

Aquí está el código:

 class Map extends React.Component { constructor(props) { super(props); this.coords = { path: [ {lat:1, lng:1} ] } } showPics = async() => { let {value} = await Storage.get({key: 'path' }) let arrayPath = JSON.parse(value) for( let i=0; i < arrayPath.length; i++) { let newArray = {lat: arrayPath[i].latitude, lng: arrayPath[i].longitude} this.coords.path.push(newArray) } } render() { const sampleData = [{ "Id": 1, "lat": 54.083336, "lng: 12.108811 }, { "Id": 2, "lat": 54.084336, "lng": 12.109811 }] return ( <div className="leaflet-container"> <MapContainer id="map" center={center} zoom={zoom} scrollWheelZoom={false}> <TileLayer attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" /> { this.coords.path.map(eachData => ( <Marker position= {[eachData.lat, eachData.lng]} /> ))} <IonFab vertical="bottom" horizontal="end" slot="fixed"> <IonFabButton onClick={() => this.showPics()}> <IonIcon icon={image}></IonIcon> </IonFabButton> </IonFab> </div> ) } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está intentando establecer los datos en this.coords . Esto no es rastreado por reaccionar y no podrá actualizar el DOM. En su lugar, puede configurar sus datos en el estado del componente como se muestra a continuación

 state = { coords: { path: [ {lat:1, lng:1} ] } }

La función showPics se puede modificar como se muestra a continuación para establecer los datos en el estado usando setState , que debe ser seleccionado por virtualDOM y actualizado en consecuencia

 showPics = async() => { const {coords:{path}} = this.state; let {value} = await Storage.get({key: 'path' }) let arrayPath = JSON.parse(value); const paths = [...path]; for( let i=0; i < arrayPath.length; i++) { let newArray = {lat: arrayPath[i].latitude, lng: arrayPath[i].longitude} paths.push(newArray) } this.setState({ coords: { path: [...paths] } }) }
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