簡體   English   中英

更改反應本機圖中主動標記的不透明度

[英]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.

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