如何解决具有功能组件的 React-Native panResponder 数组
我有一个带有 6 个图像的滑块,我希望能够使用 panResponder 移动它们中的每一个。
我写了这段代码(它有效,但它移动了所有滑块,而不仅仅是一张图片)
const pan = useState(new Animated.ValueXY())[0];
const panResponder = useState(
PanResponder.create({
onMoveShouldSetResponderCapture: () => true,//Tell iOS that we are allowing the movement
onMoveShouldSetPanResponderCapture: () => true,// Same here,tell iOS that we allow dragging
onMoveShouldSetPanResponder: () => true,onPanResponderGrant: (e,gestureState) => {
pan.setoffset({
y: pan.y._value
});
},onPanResponderMove: Animated.event(
[
null,{ dy: pan.y }
],{
useNativeDriver: false,listener: (evt,gestureState) => {
}
}
),onPanResponderRelease: (evt,gestureState) => {
//pan.flattenOffset();
console.log(gestureState);
if (gestureState.moveY > 710) {
Alert.alert("Added to cart.");
}
else {
Animated.spring(pan,{
tovalue: 100,useNativeDriver: false
},).start();
}
}
})
)[0];
return (
<View style={styles.container}>
<View style={{ width,height: '100%' }}>
<ScrollView
horizontal
style={{ width }}
showsHorizontalScrollIndicator={false}
>
{
products.map((product) => (
<Animated.View key={product.id}
style={{
transform: [{ translateY: pan.y }]
}}
{...panResponder.panHandlers}
>
<Image
style={{ width: width / 3,height,flex: 1 }}
resizeMode="contain"
source={{
uri: product.product_image,}}
/>
</Animated.View>
))
}
</ScrollView>
</View>
<View style={styles.cart}>
<Text style={styles.cartText}>Here comes the cart</Text>
</View>
</View >
);
}
我希望能够拖动每个图像,而不是整个滑块。是否有可能?我知道我们需要一个 panResponder 数组,但实际如何去做?
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。