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