![](/img/trans.png)
[英]Using react-native-maps to Change pinColor of MapView.Marker
[英]Change opacity of active marker in react-native-maps
我正在使用帶有react-native-maps的react-native應用程序,並且我希望活動標記(即我單擊的那個具有打開的標注氣泡)具有與其他標記不同的顏色。
我可以通過將ref保存為一個狀態並在渲染顏色時進行比較來更改當前標記的顏色(我們從服務器返回的鍵是不可信的,因此我現在使用ref,直到后端開發人員在響應中提供了ID),但我遇到了以下問題:
當我在地圖上的其他位置單擊以取消標注時,我無法將標記顏色設置回前一個顏色(我希望它們最初都處於完全不透明狀態,然后將“非活動”顏色設置為50%不透明,直到取消標注為止)。
我已經遍歷了react-native-maps中的所有文檔和示例,但是找不到將狀態更改事件掛鈎到dismiss事件的任何方法。
這是標記的當前代碼:
<Marker
key={index}
coordinate={loc.coordinate}
ref={ref => loc.ref = ref}
opacity={activeMarkerRef === null || activeMarkerRef === loc.ref ? 1 : 0.5}
onPress={() => setActiveMarkerRef(loc.ref);}
>
<Callout
tooltip
style={styles.bubbleView}
>
<MapInfoBubble>
<Text style={styles.bubbleTitle}>{loc.name}</Text>
<Text>
<Text style={styles.descrTitle}>Address: </Text>
<Text>{loc.address}</Text>
</Text>
<Text>
<Text style={styles.descrTitle}>Postal Code: </Text>
<Text>{loc.postal_code}</Text>
</Text>
</MapInfoBubble>
</Callout>
</Marker>
))}
</MapView>
無法將onPress屬性用於MapView組件,並將選定的標記狀態值重新設置為null。這樣做可以重新解決您的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.