Map和标记未显示在React Native中

rvpgvaaj  于 2022-12-14  发布在  React
关注(0)|答案(2)|浏览(149)

我已经用react-native-maps处理一个问题2天了。这是我的整个组件

在屏幕上显示静态Map:

我无法在屏幕上正确显示Map和标记
我所做的一切
下面是我的代码,用于复制问题。

import MapView, {Marker, PROVIDER_GOOGLE} from 'react-native-maps';
import React, {useEffect, useState} from 'react';
import {StyleSheet, Text, View} from 'react-native';

const AirlineScreen = () => {
  return (
    <View style={styles.screenContainer}>
      <MapView
        provider={PROVIDER_GOOGLE}
        initialRegion={{
          latitude: -30.559483,
          longitude: 22.937506,
          latitudeDelta: 0.09,
          longitudeDelta: 0.04,
        }}
        zoomControlEnabled={true}
        mapType={'standard'}
        style={styles.mapStyle}>
        <Marker
          coordinate={{
            latitude: -26.1392,
            longitude: 28.246,
          }}
        />
      </MapView>
    </View>
  );
};

const styles = StyleSheet.create({
  screenContainer: {
    flex: 1,
    padding: 16,
  },
  mapStyle: {
    width: '100%',
    height: 300,
    marginTop: 10,
  },
});

export default AirlineScreen;

Emulator Screen
这是整个组件,但是Map和标记没有显示。我错过了什么。

请帮助

qkf9rpyu

qkf9rpyu1#

你能再看一下你的styles对象吗?你已经在组件外创建了它。我对你的应用程序做了一个堆栈 lightning 战,它不会加载。如果它加载了,我会自己检查一下。
您可以尝试将styles作为组件的属性,并使用this.styles

tv6aics1

tv6aics12#

将Map大小调整为设备全尺寸:

import MapView, {Marker, PROVIDER_GOOGLE} from 'react-native-maps';
import React, {useEffect, useState} from 'react';
import {StyleSheet, Text, View} from 'react-native';

const AirlineScreen = () => {
  return (
    <View style={styles.screenContainer}>
      <MapView
        provider={PROVIDER_GOOGLE}
        initialRegion={{
          latitude: -30.559483,
          longitude: 22.937506,
          latitudeDelta: 0.09,
          longitudeDelta: 0.04,
        }}
        zoomControlEnabled={true}
        mapType={'standard'}
        style={styles.mapStyle}>
        <Marker
          coordinate={{
          latitude: -30.559483,
          longitude: 22.937506,
          }}
        />
      </MapView>
    </View>
  );
};

const styles = StyleSheet.create({
  screenContainer: {
    flex: 1,
    padding: 16,
  },
  mapStyle: {
  ...StyleSheet.absoluteFillObject
  },
});

export default AirlineScreen;

现场演示-https://snack.expo.dev/@emmbyiringiro/map-with-marker?platform=ios

相关问题