Всем привет! Столкнулся со следующей проблемой в своем react-native приложении:
this._panResponder = PanResponder.create({
// Ask to be the responder:
onStartShouldSetPanResponder: () => {
console.log('onStartShouldSetPanResponder');
if (this.state.draggingComponent) {
this._handleDrop();
}
return true
},
onMoveShouldSetPanResponder: (evt, gestureState) => {
console.log('onMoveShouldSetPanResponder');
return true;
},
onPanResponderGrant: () => {
console.log('onPanResponderGrant');
// return true;
},
onPanResponderMove: (...args) => {
console.log('onPanResponderMove');
return Animated.event([null, {
dx: this.state.location.x, // x,y are Animated.Value
dy: this.state.location.y,
}]).apply(this, args);
},
onPanResponderRelease: (evt, gestureState) => {
console.log('onPanResponderRelease')
if (!this.state.draggingComponent) return false;
//Ensures we exit all of the active drop zones
this._handleDrop();
},
onResponderReject: () => {
console.log('reject');
}
});
Событие
onStartShouldSetPanResponder
срабатывает только если тачить вне дочернего элемента. Если же нажать в него, то это событие не сработает, но все остальные, вроде
onPanResponderMove
и
onPanResponderRelease
работают замечательно. В чем может быть дело?