Со свойством стиля, как определено здесь:

тоящее время я создаю приложение с реагировать на нативный и использую плагин карт Airbnb для динамического отображения маркеров. Мои маркеры успешно загружаются из базы данных Firebase, а загружаемый массив всегда показывает правильное содержимое. У меня есть полный код здесь на всякий случайhttps://codepen.io/yeni/pen/Kqyrxv?editors=0010 :)

Всякий раз, когда я меняюcur_user свойство маркера1, он успешно не отображается на карте. Тем не менее, когда я меняюcur_user вернуться к0, маркер не отображается (что было бы желаемым поведением). Мой код выглядит следующим образом:

    //Store file MarkersStore.js
    class MarkersStore {
  @observable markers = [];

  constructor() {
      console.log("Started downloading markers");
      var localMarkers = [];
      Fb.bikes.on('value', (snap) => {
        localMarkers = [];
        snap.forEach((marker) => {
            localMarkers.push({
              longitude: parseFloat(marker.val().positionLng),
              latitude: parseFloat(marker.val().positionLat),
              description: "Bike 1",
              title: "b" + String(marker.val().bike_no),
              bike_no: marker.val().bike_no,
              cur_user: marker.val().current_user,
              key: marker.getKey()
            })
        });
        //Once must make sure that the upper command already finished executing!
        this.markers.replace(localMarkers);
        console.log("Loaded markers");
      });
  }

}

    ...
    //Rendering file MarkersComponent.js
    render() {
    var renderingMarkers = this.fbMarkers.markers.slice() || [];
    console.log("fbMarkers are: ");
    console.log(this.fbMarkers.markers.slice());
    console.log("Rendering stuff..");
    console.log(renderingMarkers);
    console.log("Rendering ALL the stuff!");
    return (<View>
      {renderingMarkers.map( (marker) => {
        console.log("Markers are re-rendered");
        console.log(marker.bike_no);
        console.log(marker.cur_user);
        //All console logs up until here show correct results
          return (
            <View key={marker.bike_no}>{ (marker.cur_user == 0) ?
              <MapView.Marker
            navigator={this.props.navigator}
            key={marker.bike_no}
            coordinate={{longitude: marker.longitude, latitude: marker.latitude}}
            title={marker.title}
            description={marker.description}
            onPress={(coord, pos) => this.startBookingBike(marker.bike_no)}
            ><View style={styles.bikeRadius}><View style={styles.bikeMarker}>
            </View></View>
            </MapView.Marker> : null
          }</View>
          );
    })}</View>)
  }

Кроме того, автозапуск успешно запускается каждый раз, когда я изменяю некоторые данные в базе данных (и отображаются правильные извлеченные данные). Существует ли какой-нибудь способ поместить функцию автозапуска в метод рендеринга, чтобы успешно перерисовать все?

** РЕДАКТИРОВАТЬ ** Я также открыл проблему на официальной странице GitHub, так как это, кажется, ошибка. Поправьте меня если я ошибаюсь! :)https://github.com/airbnb/react-native-maps/issues/1426

Ответы на вопрос(1)

Ваш ответ на вопрос