0

我在 React Native 中使用 PanResponder 但我有一个简单的问题我无法解决!!!

这是我的代码

class test extends React.Component {
    constructor(props) {
        super(props);
        const position = new Animated.ValueXY();
        const panResponder = PanResponder.create({
           onStartShouldSetPanResponder: () => true,
           onPanResponderMove: (evt, gs) => {
               console.log(gs.dx);
               position.setValue({ x: gs.dx , y: gs.dy })
           },
           onPanResponderRelease: (evt, gs) => {
              
               
           }, 

        });

        this.state = { panResponder, position }
    }
    getCardStyle() {
        const { position } = this.state;
        return {
            ...position.getLayout(),
        };
    }

    render() {
        return (
              <View>
                 {
                     this.props.cart.map((item, index) => {
                          return (
                         <Animated.View style={[this.getCardStyle() ,styles.CardContainer]} key={item.id}
                               {...this.state.panResponder.panHandlers}
                             >
                            <View><Image style={styles.image} source={{ uri: item.src}} /></View>
                            <Text style={styles.title}>{item.location}</Text>
                         </Animated.View>
                     )
                     })
                 }
              </View>
        );
    }
}

我想分别移动每个项目手指但是当我触摸列表中的每个项目时,整个项目开始移动。

谁能帮帮我??

4

1 回答 1

0

解决这个问题

我制作了另一个名为 ListItem 的组件,并在该组件中渲染了 FlatList 项目,它起作用了!

于 2020-08-05T19:40:18.980 回答