Javascript 更改本地贴图中活动标记的不透明度
我正在使用react-native maps开发react-native应用程序,我希望使用活动标记,即我单击并打开标注气泡的标记,使其颜色与其他标记不同 我可以通过将ref保存到一个状态并在呈现颜色时进行比较来更改当前标记的颜色。我们从服务器返回的密钥不可信,因此我现在使用ref,直到后端开发人员在响应中找到ID为止,但我遇到了以下问题: 当我在地图上的其他地方单击以取消调用时,我无法将标记颜色设置回上一个颜色,我希望它们最初都处于完全不透明度,然后将非活动的设置为50%不透明度,直到取消调用为止 我已经浏览了react native maps中的所有文档和示例,但找不到任何方法将状态更改事件挂接到Dismise事件 以下是我目前拥有的标记代码:Javascript 更改本地贴图中活动标记的不透明度,javascript,reactjs,react-native,react-native-maps,Javascript,Reactjs,React Native,React Native Maps,我正在使用react-native maps开发react-native应用程序,我希望使用活动标记,即我单击并打开标注气泡的标记,使其颜色与其他标记不同 我可以通过将ref保存到一个状态并在呈现颜色时进行比较来更改当前标记的颜色。我们从服务器返回的密钥不可信,因此我现在使用ref,直到后端开发人员在响应中找到ID为止,但我遇到了以下问题: 当我在地图上的其他地方单击以取消调用时,我无法将标记颜色设置回上一个颜色,我希望它们最初都处于完全不透明度,然后将非活动的设置为50%不透明度,直到取消调用
<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>
您不能对MapView组件使用onPress道具并将选定的标记状态值设置回null。通过这样做,重新渲染将解决您的问题