在我的应用程序,我有谷歌Map.它是实现如下.
<MapView style={[styles.mapStyle, { flex: 1, width: this.state.mapWidth }]}
initialRegion={{
latitude: this.state.latitude,
longitude: this.state.longitude,
latitudeDelta: 0.1,
longitudeDelta: 0.1,
}}
provider={PROVIDER_GOOGLE}
onPress={this.onMapPress.bind(this)}
showsUserLocation={true}
followsUserLocation={true}
showsMyLocationButton={true}
showsCompass={true}
showsTraffic={true}
toolbarEnabled={true}
onMapReady={() => this.setState({ width: width - 1 })}
>
<Marker draggable
coordinate={{
latitude: this.state.latitude,
longitude: this.state.longitude,
}}
onDragEnd={(e) => this.setState({ x: e.nativeEvent.coordinate })}
/>
<Circle
center={{
latitude: this.state.latitude,
longitude: this.state.longitude,
}}
radius={this.state.radius}
fillColor='rgba(253, 48, 4,0.5)'
strokeColor='rgba(253, 48, 4,1)'
/>
</MapView>
当我点击一个按钮时,我会改变Map区域的状态值。
changeRegion(){
this.setState({ latitude: 6.86, longitude: 6.86 });
}
这成功地改变了Map的标记的位置。
我的问题是,Map不移动到选定的位置。我如何才能实现这一点?
3条答案
按热度按时间nwwlzxa71#
为Map创建参照
将ref传递到Map
修改您的函数
jqjz2hbq2#
基于@Dan的答案,如果这个答案对你不起作用,请修改一下:
8gsdolmq3#
功能组件使用useRef