Tengo esta matriz en mi estado:
coinCoordinatesArray: [
{
latitude: 37.78825,
longitude: -122.4324},
{
latitude: 38.78825,
longitude: -120.4324},
{
latitude: 31.78825,
longitude: -80.4324},
{
latitude: 55.78825,
longitude: -95.4324}
Estoy tratando de representar marcadores usando coordenadas del estado:
{this.state.coinCoordinatesArray.forEach((coordinate) => {
return (<MapView.Marker
onPress={() => alert('fire')}
icon={require('./assets/coin_small.png')}
coordinate={coordinate}
/>)
})}
Sin embargo, los marcadores no se muestran en absoluto, pero tampoco recibo ningún error.
3 respuestas
Estás haciendo un forEach()
que solo genera los elementos, probablemente quieras hacer un map()
en su lugar, por lo que tus elementos se acumulan en una matriz y se procesan.
En lugar de usar forEach()
, que no devuelve una nueva matriz, debe usar map()
.
Así que reemplace:
{this.state.coinCoordinatesArray.forEach((coordinate) => { ...
Con:
{this.state.coinCoordinatesArray.map((coordinate) => { ...
Editar: Ejemplo de trabajo:
https://snack.expo.io/S1kstGNhV
Salida:
forEach
no devuelve nada, use map
en su lugar:
{this.state.coinCoordinatesArray.map((coordinate) => {...})}
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.