Я хочу создать приложение, похожее на Uber.Дело в том, что в документации реагировать на родные карты указано только, как визуализировать напрямую
. В моем случае я хочу, чтобы <Marker/>
отображался после onPress () (нажал кнопку). Как этого добиться?
Я попытался изменить состояние, используемое компонентом <Marker/>
внутри <MapView>
, но похоже, что он не перерисован
Конструктор:
constructor(props) {
super(props)
this.state = {
updatesEnabled: false,
location: {},
modalCategoryVisible: false,
markers: []
}
}
дескриптор onPress:
_searchStreetVendors = () => {
this.setState({
markers: [
{
merchant_name: "Zaky",
merchant_type: "Sate",
merchant_info: "Selling Sate that is tasty",
merchant_phone: "0812909281234",
location: {
latitude: -6.667772,
longitude: 106.723630,
}
},
]
})
}
MapView:
render() {
return (
<View style={styles.container}>
<MapView
style={styles.map}
provider={PROVIDER_GOOGLE}
ref={(mapView) => { _mapView = mapView; }}
initialRegion={{
latitude: -6.174969,
longitude: 106.827202,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
}}>
{this.state.markers.map(marker => (
<MapViewMarker
coordinate={marker.location}
title={marker.title}
description={marker.description}
/>
))}
</MapView>
...
<View/>
}