Reaction-native onPanResponderMove странное поведение без документации Animated.Event
Я заметил в реагировать родной panResponder вызовы метода onPanResponderMove, когда я использую
onPanResponderMove: Animated.event([null, {dx: this._pan}]),
но когда я пытаюсь использовать:
onPanResponderMove: (e, gestureState) => {
Animated.event([null, {dx: this._pan}])
},
метод не вызывает. Есть ли другой синтаксис javascript, который я могу использовать, чтобы у меня была область действия функции, которую я мог бы использовать рядом с Animated.event
2 ответа
Animated.event() возвращает функцию. Если вы хотите запустить функцию, вы должны вызвать ее. Я предполагаю, что ваш вариант использования заключается в том, что вы хотите выполнять какие-то действия на каждом шаге? В этом случае синтаксис, который вы ищете:
onPanResponderMove: (e, gestureState) => {
...some actions...
Animated.event([null, {dx: this.state.pan.x}])(e, gestureState);
},
Если вы хотите обернуть Animated.event, вам нужно вызвать обертку и вернуть обратный вызов:
onPanResponderMove: (() => {
...some actions...
return Animated.event([null, {dx: this._pan}]);
})(),
Это связано с тем, что Animated.event возвращает другую функцию (используя предоставленные сопоставления для привязки данных события к переменным компонента, чтобы он мог вызывать setValue
на них), который в свою очередь вызывается обратно прослушивателем onPanResponderMove для события move.