React native 如何实现、反应本机拖放

React native 如何实现、反应本机拖放,react-native,React Native,我想实现react本地拖放,在拖放时交换组件。假设屏幕上有五个组件,一旦我拖动它,它应该突出显示dropable元素。一旦拖放,组件应该交换。为了实现拖放,您需要使用pan响应程序。首先,您需要定义对象移动时将值存储在何处,您可以在状态上设置属性 state = { pan: new Animated.ValueXY(), }; 然后您必须在组件willmount中创建pan响应程序,例如: this.panResponder = PanResponder.create({ o

我想实现react本地拖放,在拖放时交换组件。假设屏幕上有五个组件,一旦我拖动它,它应该突出显示dropable元素。一旦拖放,组件应该交换。

为了实现拖放,您需要使用pan响应程序。首先,您需要定义对象移动时将值存储在何处,您可以在状态上设置属性

state = {
    pan: new Animated.ValueXY(),
};
然后您必须在
组件willmount
中创建pan响应程序,例如:

this.panResponder = PanResponder.create({
    onStartShouldSetPanResponder : () => true,
    onPanResponderMove           : Animated.event([null,{ // <--- When moving
        dx : this.state.pan.x,
        dy : this.state.pan.y
    }]),
    onPanResponderRelease        : (e, gesture) => {} // <--- callback when dropped
});
this.panResponder=panResponder.create({
onStartShouldSetPanResponder:()=>true,

onPanResponderMove:Animated.event([null,{/{}//我已经尝试过了,但是我想拖放圆圈并交换它们和它们的值。然后,您所要做的就是在拖放元素时创建动画;)
<Animated.View 
    {...this.panResponder.panHandlers}  
     style={[this.state.pan.getLayout(), styles.circle]}>  
      <Text style={styles.text}>Drag me!</Text>
</Animated.View>