当我没有结束捏地图时调用此方法,无论如何还有解决这个问题的方法吗?
这是代码
<MapView
style={{flex:1}}
region={{
latitude: parseFloat(this.state.initialPosition.coords.latitude),
longitude: parseFloat(this.state.initialPosition.coords.longitude),
latitudeDelta,
longitudeDelta,
}}
showsUserLocation={true}
onRegionChangeComplete={(region) => {
console.log('onRegionChangeComplete called!');
}}
/>
答案 0 :(得分:0)
我只是解决它制作一个setTimeout!这是如何
<MapView
style={{flex:1}}
showsUserLocation={true}
onRegionChange={(region) => {
if(this.timeout){
clearTimeout(this.timeout);
}
this.timeout = setTimeout(() => {
this.getDoctorsByGeolocation(region);
},1000);
}}
/>
我希望这可以帮助任何人!
答案 1 :(得分:0)
使用initialRegion
代替区域,它将正常工作。
实际上,当您同时使用region和onRegionChangeComplete
时,onRegionChangeComplete
就像callback
一样,在每次更改区域时都会触发,从而再次更改了区域。因此,它陷入无限循环。
最好将initialRegion
与onRegionChangeComplete
一起使用。