[英]marker pin recreate on custom marker when user filter the marker then zoom in /out (Please Go through the below Description)
起初,渲染一切正常,但是一旦用户尝试通过 rest api 过滤标记,这一步之后用户缩小或放大 map 默认标记针生成自定义标记
依赖:- react-native-maps
查看录制视频:- 视频链接
<MapView ref={mapRef} rotateEnabled={false} shouldRasterizeIOS mapType="standard" style={styles.map} initialRegion={INITIAL_REGION} > {data && data?.map(item => ( <CustomMarker item={item} key={item?.id} setSelectedMarkerId={(row: any) => { mapRef?.current?.animateToRegion( { latitude: Number(row?.lat), longitude: Number(row?.long), latitudeDelta: 0.002, longitudeDelta: 0.002, }, 1000, ); }} coordinate={{ latitude: Number(item?.lat), longitude: Number(item?.long), }} /> ))} </MapView>
这是我的自定义标记代码:-
const CustomMarker = ({ item, setSelectedMarkerId, setIsMarkerDetailShow , coordinate }) => {
const [tracksViewChanges, setTracksViewChanges] = useState(true);
return (
<Marker
tracksViewChanges={tracksViewChanges}
coordinate={coordinate}
onPress={() => {
setSelectedMarkerId(item);
// setIsMarkerDetailShow(true);
}}
>
<View>
{item?.abribois ? (
<Image
source={require('src/assets/images/greenMarker.png')}
style={{
height: 30,
width: 30,
resizeMode: 'contain',
}}
onLoadEnd={() => setTracksViewChanges(false)}
/>
) : (
<Image
source={require('src/assets/images/blueMarker.png')}
style={{
height: 30,
width: 30,
resizeMode: 'contain',
}}
onLoadEnd={() => setTracksViewChanges(false)}
/>
)}
</View>
</Marker>
);
};
export default CustomMarker;
这个问题与react-native-reanimated 相关联。
经过一些研究,我找到了这个解决方案,它对我有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.