latlng не может быть нулевым — требуется позиция

У меня есть реактивное мобильное приложение и я использую реактивные карты. Я хочу загружать маркеры при запуске приложения, но получаю ошибку latlng cannot be null - a position is required.
Я пытаюсь заполнить маркеры массива.

export default class MapScreen extends React.Component {
constructor(props) {
    super(props);

    this.watchID = navigator.geolocation.watchPosition((position) => {
            console.log(position.coords) // get your showUserLocation here
        },
        (error) => console.log(error.message), GEOLOCATION_SETTINGS
    )



    this.state = {
        region: {
            latitude: LATITUDE,
            longitude: LONGITUDE,
            latitudeDelta: LATITUDE_DELTA,
            longitudeDelta: LONGITUDE_DELTA,
        },
        markers: [{
          title: 'FINISH',
          description: 'You have found me!',
          coordinates: {
           latitude: 14.548100,
           longitude: 121.049906
        }, 
       }]
    }
}

Затем он вызывается позже:

                    {this.state.markers.map(marker => (
                    <Marker
                        key={marker.key}
                        coordinate={marker.coordinate}
                        pinColor={marker.color}
                    >
                        {/* Callout est l'infowindow */}
                        <Callout style={styles.plainView}>
                            <View>
                                {/* Texte par défaut pour le moment, à changer (voir ticket MARKER3) */}
                                <Text>
                                    Nom + Coordonnées + click here to see info
                                </Text>
                            </View>
                        </Callout>
                    </Marker>
                ))}

Я предполагаю, что то, как я даю информацию в markers[], неверно, но я перепробовал все, что мог придумать, включая

        markers: [{
         latlng: {
           latitude: 14.548100,
           longitude: 121.049906
       }, 
   }]

и он по-прежнему говорит мне, что latlng равен нулю.
Действительно ли проблема связана с синтаксисом ввода? Как я могу найти правильный?


person user3794667384    schedule 01.08.2018    source источник


Ответы (1)


У вас есть опечатка в вашем коде в coordinate={marker.coordinate}, должно быть coordinate={marker.coordinates} как то, что вы определили в своем состоянии.

    markers: [{
      title: 'FINISH',
      description: 'You have found me!',
      coordinates: {
       latitude: 14.548100,
       longitude: 121.049906
    }, 
   }]

Также вы пропустили key и color в своем штате.

    markers: [{
      title: 'FINISH',
      description: 'You have found me!',
      coordinates: {
       latitude: 14.548100,
       longitude: 121.049906
      },
      key: 'YOUR_KEY_VALUE',
      color: 'YOUR_COLOR_VALUE' 
   }]
person DennisFrea    schedule 02.08.2018
comment
Спасибо большое, никогда бы не заметил эту опечатку - person user3794667384; 02.08.2018