反应:Google地图仅在静态上加载



我已经战斗了一段时间。只有在使用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)) {

您会很好。

相关内容

  • 没有找到相关文章

最新更新