0

Ich habe reactive-native-map Luft bnb verwendet, um eine Google Map in meiner nativen App zu rendern. Die Karte und der Marker werden angezeigt, aber der Marker kann nicht gezogen werden. das ist mein SkriptMarker reagieren native Karte kann nicht ziehen

<View style={Style.mapContainer}> 
      <GeoLocation onSetInitalPos={this.onSetInitialPosition} 
         onSetLastPos={this.onSetLastPosition}/> 
      <MapView style={Style.map} region={this.state.region} onRegionChange={this.onRegionChange}> 
       <MapView.Marker draggable={this.state.draggable} 
           coordinate={this.state.marker.latlng} 
           title={this.state.marker.title} 
           description={this.state.marker.description} 
           onDrag={() => console.log('onDrag')} 
       /> 
      </MapView> 
      <AutoCompleteMap onSetNewPlace={this.setMarkerPosition}/> 
     </View> 

Antwort

1

Nach docs von react-native-mapsziehbar:

Dies ist ein nicht-Wert basiert prop. Wenn Sie dies hinzufügen, kann der Marker ziehbar (neu positioniert) werden.

Statt draggable={this.state.draggable}, sollten Sie es wie diese

<MapView style={Style.map} region={this.state.region} onRegionChange={this.onRegionChange}> 
    <MapView.Marker 
    draggable 
    coordinate={this.state.marker.latlng} 
    title={this.state.marker.title} 
    description={this.state.marker.description} 
    onDragEnd={this.onUserPinDragEnd.bind(this)} /> 
</MapView> 

Hier ist ein Ausschnitt des Arbeits ziehbar Markers Version meines Projektes werden zu definieren. Nichts Besonderes, nur mit Exponent Components MapView zu importieren, statt npm zu installieren und zu verlinken.

<Components.MapView 
     ref={(map) => this.map = map} 
     style={{width: Metrics.screenWidth, height: mapHeight, zIndex: 0}} 
     region={{ 
     latitude: this.state.location.coords.latitude, 
     longitude: this.state.location.coords.longitude, 
     latitudeDelta: 0.0100, 
     longitudeDelta: 0.0100, 
     }} 
    > 
     <Components.MapView.Marker 
     key={'i29'} 
     draggable 
     onDragEnd={this.onUserPinDragEnd.bind(this)} 
     title={'You are here'} 
     coordinate={{ 
      latitude: this.state.userLocation.coords.latitude, 
      longitude: this.state.userLocation.coords.longitude, 
     }} 
     /> 
    </Components.MapView> 

Und nur um sicher zu sein, haben Sie versucht, halten Sie die Markierung gedrückt, um es zu ziehen? Es ist irgendwie langsam.

+0

danke, es jetzt zu lösen, während ich den Marker lange drücken – cahyowhy

Verwandte Themen