реагировать - извлеченные маркеры MapView не рендерится - PullRequest
0 голосов
/ 25 апреля 2018

У меня проблемы с маркерами карты, которые я извлекаю из файла json. У меня могут быть пользовательские маркеры, если я импортирую их из файла, но мне нужно импортировать координаты из json. Я получаю свое текущее местоположение из setState в componentDidMount без проблем, но кажется, что он не работает так же, как с маркерами. Я тестирую с журналированием, и кажется, что первые два раунда рендеринга массив пуст, но так как я устанавливаю initialRegion в том же месте, я не понимаю проблему? Вот (некоторые) из моих componentDidMount:

return fetch('https://url.json')
  .then((response) => response.json())
  .then((responseJson) => {
      this.setState({
        data : responseJson,
      });
  })
  .catch((error) =>{
    console.error(error);
  });

и вот часть моего MapView:

<MapView style={styles.map}
                initialRegion={{
            latitude:this.state.latitude,
            longitude:this.state.longitude,
            latitudeDelta: 0.043,
            longitudeDelta: 0.034
                }}


                ref={c => this.mapView = c} 
                onPress={this.onMapPress}
                loadingEnabled={true}
            >

        {this.state.data.map(marker => (
          <MapView.Marker
          key={marker.name}
          coordinate={{
          latitude: marker.lat,
          longitude: marker.lng,
        }}
        image={img}
        title={marker.title}
        description={marker.description}
        />
        ))}
...