React Native - MapView 是不是只接受显式标记?

Posted

技术标签:

【中文标题】React Native - MapView 是不是只接受显式标记?【英文标题】:React Native - Does MapView only accept explicit markers?React Native - MapView 是否只接受显式标记? 【发布时间】:2018-08-28 16:49:36 【问题描述】:

试图让我的应用程序中的地图视图动态地重新填充自己,我真的很难过。首先,我尝试执行以下操作:

render()

const neoMarker = (lat, long, title, desc) => 
      <MapView.Marker
      coordinate=latitude: lat,
          longitude: long,
      title=title
      description=desc
      onPress=() => this.setState(jvisible: true)>
      <FAB
    small
    icon="add"
    onPress=() => this.setState(jvisible: true)/>
      </MapView.Marker>
    

    var noGuest = 5;
    var test = 37.43538;

    for(let i = 0; i < noGuest; i++)
      markerL.push(neoMarker(test, -122.4324, "New Job", "Testing Marker List"));
      test = test + 0.01000;
    


  return (
  <View style=styles.container>
  <MapView
    style= flex: 1 
    initialRegion=
      latitude: 37.78825,
      longitude: -122.4324,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421,
    >
     markerL
  </MapView>

这不起作用,地图没有标记,所以我尝试像以前一样做,除了使用索引,在这种情况下,markerL[0]。这也不起作用。因此,我最终尝试通过调用 neoMarker 函数本身而不是带有一些通用输入的 markerL 来填充 make,并且 mapview 仍然不会呈现任何标记。

当明确定义标记时,它们会出现,但这并不实用 当前开发版本之外的方法。

因此,MapView 是否明确不允许隐式标记列表?

PS:我正在使用 Expo (https://expo.io/) 在移动设备上测试和调试我的代码。

【问题讨论】:

【参考方案1】:

当你这样做时

someFunction = () => "abc"

你回来"abc"。但是当你这样做时:

someFunction = () => 
    "abc"

你回来undefined

可能还有另一个问题,但乍一看,您似乎没有从 neoMarker 返回任何内容。

const neoMarker = (lat, long, title, desc) => 
    <MapView.Marker

需要

const neoMarker = (lat, long, title, desc) => 
    return <MapView.Marker

演示:

const noReturn = () => 
    "abc";


const withReturn = () => 
    return "xyz";


console.log(noReturn(), withReturn());

【讨论】:

修复它,批准答案

以上是关于React Native - MapView 是不是只接受显式标记?的主要内容,如果未能解决你的问题,请参考以下文章

React Native mapview:标记未在IOS上显示

从 Expo.MapView React-native 将 fitToSuppiedMarkers 应用到我的地图的正确方法是啥?

React Native Expo MapView - 将标记详细信息传递给扩展的底部视图

使用React Native的MapView,我如何确定何时到达最终拖动目的地?

如何覆盖现有的 react-native 原生组件

使用 react-native-maps 未显示谷歌地图/空白