Android 在无需用户输入的情况下移动本机映射

Android 在无需用户输入的情况下移动本机映射,android,react-native,react-native-maps,Android,React Native,React Native Maps,这是我的地图视图代码 <MapView style={styles.map} initialRegion={ this.state.region } region={this.state.region} onRegionChangeComplete={this.onRegionChange} showsMyLocationButton showsCompass

这是我的地图视图代码

        <MapView
      style={styles.map}
      initialRegion={
        this.state.region 
      }
      region={this.state.region}
      onRegionChangeComplete={this.onRegionChange}
      showsMyLocationButton
      showsCompass
      showsUserLocation 
      zoomControlEnabled 
      loadingEnabled
      onMapReady={this.state.placesread ? this.getBreakfast : null}
    >
      {marker}
    </MapView>

})

我想问题在于您正在使用
onRegionChangeComplete
回调将新区域存储到state。i、 e
此.state.region
。并且该
区域
道具被传递到
地图视图
组件

尝试从
MapView
组件中删除
region={this.state.region}

更新

另外,使用
wait
setState
还有一件事是完全多余的(
wait this.setState({region})
),因为setState不会返回
promise
,而是
undefined

setState
是异步功能。如果你想等待它,你能做的就是把它写进承诺中,并在callback/second参数中解析

例如,每当您希望
setState
像同步调用
promisedSetState
那样运行时

promisedSetState = (newState) => new Promise((resolve) => {
        this.setState(newState, () => {
            resolve();
        });
});
//await the promise to get resolved
await promisedSetState({newState: 'whatever it is'});

请在RegionChangeComplete上共享
函数code@Shivam我已经更新了我的答案,我已经发布了答案,让我知道这是否适合你。
promisedSetState = (newState) => new Promise((resolve) => {
        this.setState(newState, () => {
            resolve();
        });
});
//await the promise to get resolved
await promisedSetState({newState: 'whatever it is'});