2017-01-11 3 views
1

에는 문서 Animated.Event 내가반응 네이티브 onPanResponderMove 이상한 행동 내가에서 발견했습니다

onPanResponderMove: Animated.event([null, {dx: this._pan}]), 

를 사용할 때 panResponder onPanResponderMove 방법은 호출 네이티브 반응하지하지만 난 사용하려고하면 :

onPanResponderMove: (e, gestureState) => { 
    Animated.event([null, {dx: this._pan}]) 
    }, 

을 메소드가 호출하지 않습니다. 내가, 당신이 래퍼를 호출하고 콜백 반환해야 그래서 당신이 Animated.event를 포장하려면 내가 측면 Animated.event

답변

2

함께 사용할 수있는 기능의 범위를 가지고 사용할 수있는 또 다른 자바 스크립트 구문이 있나요 :

onPanResponderMove: (() => { 
    ...some actions... 
    return Animated.event([null, {dx: this._pan}]); 
    })(), 

차례로 다시 이동 이벤트에 onPanResponderMove 리스너에 의해 호출되는, Animated.event은 (구성 요소 변수에 대한 이벤트 데이터를 바인딩하기 위해 제공 매핑을 사용하여, 그래서 그들에 setValue를 부를 수있는) 다른 함수를 반환하기 때문입니다.

+0

'일부 동작'이 PanResponder.create()에서만 실행되는 자체 실행 기능을 만들었습니다. 대부분의 경우 이는 구성 요소 마운트에만 있습니다. 나의 이해는 OP가 자신의 코드에서 "Animated.event 측면에서"몇 가지 작업을 실행하고자한다는 것입니다. onPanResponderMove가 호출 될 때마다. – dazweeja

+0

정확합니다. 설명 주셔서 감사합니다! – fcFn

1

Animated.event()는 함수를 반환합니다. 함수를 실행하려면 호출해야합니다. 나는 당신의 유스 케이스가 당신이 모든 이동에 대해 어떤 액션을 수행하기를 원한다고 가정하고 있는가? 이 경우 찾고있는 구문은 다음과 같습니다.

onPanResponderMove: (e, gestureState) => { 
    ...some actions... 
    Animated.event([null, {dx: this.state.pan.x}])(e, gestureState); 
    },