Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改本地贴图中活动标记的不透明度_Javascript_Reactjs_React Native_React Native Maps - Fatal编程技术网

Javascript 更改本地贴图中活动标记的不透明度

Javascript 更改本地贴图中活动标记的不透明度,javascript,reactjs,react-native,react-native-maps,Javascript,Reactjs,React Native,React Native Maps,我正在使用react-native maps开发react-native应用程序,我希望使用活动标记,即我单击并打开标注气泡的标记,使其颜色与其他标记不同 我可以通过将ref保存到一个状态并在呈现颜色时进行比较来更改当前标记的颜色。我们从服务器返回的密钥不可信,因此我现在使用ref,直到后端开发人员在响应中找到ID为止,但我遇到了以下问题: 当我在地图上的其他地方单击以取消调用时,我无法将标记颜色设置回上一个颜色,我希望它们最初都处于完全不透明度,然后将非活动的设置为50%不透明度,直到取消调用

我正在使用react-native maps开发react-native应用程序,我希望使用活动标记,即我单击并打开标注气泡的标记,使其颜色与其他标记不同

我可以通过将ref保存到一个状态并在呈现颜色时进行比较来更改当前标记的颜色。我们从服务器返回的密钥不可信,因此我现在使用ref,直到后端开发人员在响应中找到ID为止,但我遇到了以下问题:

当我在地图上的其他地方单击以取消调用时,我无法将标记颜色设置回上一个颜色,我希望它们最初都处于完全不透明度,然后将非活动的设置为50%不透明度,直到取消调用为止

我已经浏览了react native maps中的所有文档和示例,但找不到任何方法将状态更改事件挂接到Dismise事件

以下是我目前拥有的标记代码:

      <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。通过这样做,重新渲染将解决您的问题