反应本地平移响应器,捕获从传播到儿童的所有触摸事件

时间:2018-11-20 00:16:15

标签: javascript react-native gesture expo event-bubbling

我正在尝试将我所有的组件“场景”都包装在expo multitouch component中(这是平移响应器的包装),这样,如果有人在任何时候执行多点触摸手势,这都会触发应用程序菜单,否则,子视图会响应触摸事件。我该如何完成?似乎父级会捕获并停止所有事件的传播-我本以为那些事件将从最内层的元素向上冒泡。

通常,我会使用摇动手势,但是我使用的是expo,它会将该手势保留给自己的菜单。

这是我的代码:

class ResultsScreen extends React.Component {
    render() {
    const props = {
      onTouchBegan: ({ identifier }) => {
        console.log('onTouchBegan', identifier);
      },
    };
    return (
      <MultiTouchView
        style={{ flex: 1 }}
        {...props}
      >
        { /* scrolling not working */ }
        <ScrollView
            style={{
              flex: 1,
            }}
        >

        </ScrollView>
      </MultiTouchView>
    )
}

请注意,如果我设置的话,它仍然使用React Native的方法:

onStartShouldSetPanResponderCapture: ()=>false,
onMoveShouldSetPanResponderCapture: ()=>false,
onStartShouldSetPanResponder: ()=>false,
onMoveShouldSetPanResponder: ()=>false,

在该props对象中,然后底层元素将按预期响应-我不再获得onTouchBegan事件。

0 个答案:

没有答案