如何通过react-native-maps创建一个标记?

问题描述 投票:0回答:1

我们可以通过DefaultMarkers创建多个标记,但我只需要一个标记。我需要在标记之前删除并创建新标记。我怎样才能做到这一点?

我认为其他例子并不比我的想法更接近,所以如果你有更好的想法,请告诉我。

let id = 0;


  constructor(props){
    super(props);
    this.state={
      markers: [],
    }
  }


onMapPress(e) {
    this.setState({
      markers: [
        ...this.state.markers,
        {
          coordinate: e.nativeEvent.coordinate,
          key: id++,
        },
      ],
    });
  }


  <MapView
     style={styles.map}
     initialRegion={{
        latitude: 28.95761453,
        longitude: 50.83710976,
        latitudeDelta: 0.0200,
        longitudeDelta: 0.0200,
     }}
     provider={this.props.provider}
     onPress={(e) => this.onMapPress(e)}>

              {this.state.markers.map(marker => (
                <Marker
                  key={marker.key}
                  coordinate={marker.coordinate}
                />
              ))}

   </MapView>
react-native react-native-maps
1个回答
1
投票

只需从onMapPress方法中删除... this.state.markers一行并检查输出。如果有任何错误,请告诉我。

onMapPress(e) {
    this.setState({
      markers: [ 
        {
          coordinate: e.nativeEvent.coordinate,
          key: id++,
        },
      ],
    });
  }
© www.soinside.com 2019 - 2024. All rights reserved.