2017-09-22 28 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

相关问题