2016-10-18 55 views
0

我试图通过使用React Native PanResponder来实现简单的拖动功能。我看了this tutorial,但我做了一个更简单的事情,它只是在拖动时改变一个状态变量。原生反应:this.touchableHandleResponderGrant不是函数

componentWillMount() { 
    this._panResponder = PanResponder.create({ 
     onMoveShouldSetResponderCapture:() => true, 
     onMoveShouldSetPanResponderCapture:() => true, 
     onPanResponderGrant: (e, gestureState) => { 
      //this.setState({pan: 0}); 
      console.log('grant'); 
     }, 

     onPanResponderMove: (e, gestureState) => { 
     //this.setState({pan: gestureState.dx}); 
     console.log(gestureState); 
     }, 
     onPanResponderRelease: (e, {vx, vy}) => { 
     } 

    }); 
    console.log('pan init'); 
} 

而在我的渲染功能,我有这样的:

<Text {...this._panResponder.panHandlers}>Drag here</Text> 

但只要我平移/拖我得到了错误的Redbox:

this.touchableHandleResponderGrant is not a function 

我做了什么错误?

回答

1

我猜panHandlers道具只能用于ViewAnimated.View组件。

<View {...this._panResponder.panHandlers}> 
    <Text>Drag here</Text> 
</View> 

<Animated.View {...this._panResponder.panHandlers}> 
    <Text>Drag here</Text> 
</Animated.View> 
+0

啊...这是惊人的,没有一个有关的线索。现在它完美地工作。非常感谢! :) – Niclas

相关问题