2017-09-22 121 views
2

使用下列內容:陣營與終極版原生地圖:波濤洶涌的區域變化

  • 陣營,本機地圖(製作的Airbnb - 0.16.4)
  • 終極版

我有點困惑關於如何更新我的state.map.region。我有觸發狀態更改的手動和自動(animateToCoordinate)操作。我不確定是使用onRegionChange,onRegionChangeComplete還是onMapReady來更新與我的地圖相關聯的當前區域。到目前爲止,我嘗試過的所有組合都會導致動畫效果不連貫,其中地圖會跳轉回先前的狀態(區域)。

目前爲止最好的工作是使用onRegionChange和onRegionChangeComplete中的新區域更新本地變量,然後在onMapReady上調度該更改。 ..但這仍然不理想和波濤洶涌。

它幾乎看起來好像onRegionChangeComplete過早調用。

回答

0

最終解決這個問題的方法是在MapView組件中設置intialRegion而不是在區域中。一旦我添加initialRegion並刪除區域,動盪不再是一個問題。

1

我將MapView的區域設置爲從狀態派生,然後使用onRegionChangeComplete來觸發setState,它重新呈現地圖。 在受控拖放類似移動時效果很好,但是當拖動地圖並放開它時,它會滑動直到停止。看起來在這種特殊情況下,onRegionChangeComplete觸發多次觸發多個setState調用,這並不總是非常直觀,但它是使我在iOS上工作時最接近的東西。

+0

我曾經做過類似的事情,但不是使用set狀態,而是使用redux調度區域。這工作好了一段時間,但現在與iOS 11它變得無法使用。 – kardolus

+0

@kardolus在升級到iOS 11之後,我不得不重新訪問地圖代碼的一部分。您的「initialRegion」以前的響應確實更好 – Vee6

相關問題