关PanResponder拦截与TouchableHighlight、Touchable系列组件问题



  • 这个问题遇到几次了,父组件添加PanResponder手势子组件TouchableHighlight点击事件被拦截或不执行问题
    this._gestureHandlers = {
    onStartShouldSetResponder: () => true,
    onMoveShouldSetResponder: ()=> true,
    onResponderGrant: ()=>{ },
    onResponderMove: ()=>{ },
    onResponderRelease: ()=>{ }
    <View {...this._gestureHandlers}>
    <TouchableHighlight onPress={{}}>
    </TouchableHighlight>
    </View>
    每次都是执行父组件的触摸或移动,请问各位是我用错了还是这是一个bug,



  • 没人遇到过么,这个是一个很大的问题啊



  • 這裡可以判斷掉要不要攔截 例如
    onStartShouldSetPanResponderCapture: (evt, gestureState) => {
    return Math.abs(gestureState.dx) >= 15
    },
    onMoveShouldSetPanResponderCapture: (evt, gestureState) => {
    return Math.abs(gestureState.dx) >= 15
    },
    未達此條件 不會觸發
    onPanResponderTerminate: (evt, gestureState) => {
    },
    onPanResponderTerminationRequest: (evt, gestureState) => {}
    這兩個在嵌套進scrollview時會用到

    多看看官方panResponder的文檔吧


Log in to reply