我目前正在摆弄 react-native-maps 以模拟地图空间周围的各种移动对象(模拟项目的实时跟踪),并在标记旁边显示每个对象的名称的标注。
我目前能够在每次按下时显示每个标记的标注。但是,我打算创建一个按钮,用于打开或关闭地图上每个标记的标注。
我目前正在为我的地图使用react-native-maps库。
我所做的是这样的:
/* this.props.trackedObjects is an array of objects containing
coordinate information retrieved from database with the following format
trackedObjects=[{
coordinate:{
latitude,
longitude
},
userName
}, ...]
*/
/* inside render() */
{this.props.trackedObjects.map((eachObject) => (
<View>
<MapView.Marker
ref={ref => {this.marker = ref;}}
key={eachObject.userName}
coordinate={eachObject.coordinate}
>
/*Custom Callout that displays eachObject.userName as a <Text>*/
</MapView.Marker>
</View>
))}
/* Button onPress method */
onPress(){
if(toggledOn){
this.marker.showCallout();
}else{
this.marker.hideCallout();
}
}
似乎当我渲染单个 Marker 组件时,此方法有效。但是,我无法完全摆脱使用 showCallout() 来显示整组标记的标注。
任何人都可以阐明如何去做这件事吗?