我已经战斗了一段时间。只有在使用Android" Multi-Tasker"之后,我才将其获得到Google地图加载的地步。
页面以白色背景开始:如下所示
然后按下右下角的按钮以切换应用程序后,加载:Google Maps已加载
但是,如果我拖到另一个地方,我需要在应用程序之前再次切换应用。某种静态更新。不知道为什么..
这是第二页,如果我返回应用程序的第一页,则Google地图返回到白色背景。我尝试将Google Maps页面放入首页,但这也不能解决任何内容。
我现在正在使用的代码:
import React, { Component } from 'react';
import MapView from 'react-native-maps';
import { AppRegistry, View, StyleSheet, Dimensions } from 'react-native';
const { width, height } = Dimensions.get('window');
const ASPECT_RATIO = width / height;
const LATITUDE = 37.78825;
const LONGITUDE = -122.4324;
const LATITUDE_DELTA = 0.0122;
const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;
const SPACE = 0.01;
class Additional extends React.Component {
constructor() {
super();
this.state = {
region: {
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
}
}
componentDidMount() {
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
region: {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
accuracy: position.coords.accuracy
}
});
},
(error) => alert(error.message),
{timeout: 10000}
);
this.watchID = navigator.geolocation.watchPosition((position) => {
const newRegion = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
accuracy: position.coords.accuracy
}
this.setState({newRegion});
});
}
componentWillUnmount() {
navigator.geolocation.clearWatch(this.watchID);
}
render() {
return (
<View style={styles.container}>
<MapView
style={styles.map}
region={this.state.region}
showsUserLocation={true}
followUserLocation={true}>
</MapView>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
...StyleSheet.absoluteFillObject,
justifyContent: 'flex-end',
alignItems: 'center',
},
map: {
...StyleSheet.absoluteFillObject,
},
});
AppRegistry.registerComponent('Additional', () => Additional);
export default Additional;
有人知道像普通的Google-Maps组件一样使此工作的答案吗?
预先感谢!
编辑:我已经使用了一个新的反应生态项目尝试了此代码,但是发生了完全相同的事情。有人得到了一些输入吗?谢谢!
问题在于反应本地映射。
在//lib/android/src/main/java/com/airbnb/android/react/maps/airmapview.java.java
if (!contextHasBug(appContext.getCurrentActivity())) {
superContext = appContext.getCurrentActivity();
} else if (contextHasBug(superContext)) {
进入:
if (contextHasBug(superContext)) {
您会很好。