onRegionChangeComplete被调用太多次,而不是在事件真正结束时

时间:2016-12-05 04:38:31

标签: react-native maps

当我没有结束捏地图时调用此方法,无论如何还有解决这个问题的方法吗?

http://imgur.com/VtKeC1g

这是代码

<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!');
    }}
/>

2 个答案:

答案 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一样,在每次更改区域时都会触发,从而再次更改了区域。因此,它陷入无限循环。 最好将initialRegiononRegionChangeComplete一起使用。