Реагируйте на собственные карты, не отображая маркеры на iOS - PullRequest
1 голос
/ 30 января 2020

Я использую собственные карты реагирования для отображения карты в моем приложении, и эта карта должна отображать маркеры, которые извлекаются из базы данных в Интернете. Когда карта смонтирована и после выборки точек расположения данных маркера я обновляю состояние, содержащее массив точек маркера, однако маркеры не отображаются после установки состояния. Есть ли работа в этом? Вот пример кода:

PS Это происходит только в iOS.

const [markerPoints, setMarkerPoints] = useState([])

useEffect(() => {
    getMarkerPoints()
}, [])

const getMarkerPoints = callback => {
    axios
        .get(
            'some end point',
        )
        .then(res => {
            if (res.status === 200) {
                setMarkerPoints(res.data.results)
            }
        })
        .catch(error => {
            console.log(error)
        })
}

const renderMarkers = () => {
    return markerPoints.map((place, index) => {
        return (
            <Marker
                key={index}
                coordinate={{
                    latitude: place.geometry.location.lat,
                    longitude: place.geometry.location.lng,
                }}
             />
        )
    }
}

return (
    <MapView
        ref={map}
        provider={PROVIDER_GOOGLE}
        style={styles.map}
        region={curRegion}
        showsUserLocation={true}
        showsMyLocationButton={false}
        onRegionChangeComplete={onMapRegionChangeComplete}
        customMapStyle={mapStyles}
    >
        {renderMarkers()}
    </MapView>
)
...