由于要在我的应用程序中动态填充自身的mapview,我真的很生气。首先,我尝试执行以下操作:
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/)在移动设备上测试和调试代码。
答案 0 :(得分: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());