簡體   English   中英

OnPress 不適用於 react-native-maps 中的 Marker

[英]OnPress not working for Marker in react-native-maps

我想在按下地圖上的Markers之一時執行一些操作。 我擁有的:

1)一個MapView ,像這樣:

<MapView
    provider={PROVIDER_GOOGLE}
    initialRegion={this.state.region}
    style={styles.map}>
    {this.displayRouteLocations(locations)}
</MapView>

2) 我的方法displayRouteLocations執行以下操作:

displayRouteLocations(locations) {
    return locations.map((location, i) => {
        return (
            <PointMarker
                key={i}
                coordinate={location}
                title={location.name}
                description={location.description}
                onPress={() => alert('test')}
            />
        );
    });
}

3) 最后, PointMarker是一個單獨的組件,如下所示:

import {Marker} from 'react-native-maps';

class PointMarker extends Component {
    render() {
        return (
            <Marker
                {...this.props}
                pinColor={'#f6c23d'}
                tracksViewChanges={false}
            />
        );
    }
}

我不知道為什么onPressPointMarkerPointMarker 我將它傳遞給 react-native-maps Marker ,但不知何故,當我按下標記時它沒有被觸發。

我已經嘗試在 GitHub 上的 react-native-maps 官方文檔中尋找答案。 這個例子中,它們的作用幾乎相同(調用 onPress 箭頭函數)。 但是,它在我的情況下不起作用。

我正在 Android 上測試該應用程序。

根據文檔,您應該將stopPropagation設置為 true。 像這樣 :

displayRouteLocations(locations) {
    return locations.map((location, i) => {
        return (
            <PointMarker
                key={i}
                coordinate={location}
                title={location.name}
                description={location.description}
                onPress={(e) => {e.stopPropagation(); alert('test');}}
            />
        );
    });
}

更多信息: <Marker />組件 API

更多信息2: 建議

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM