Реагировать на собственный ответчик панорамирования, перехватывающий все события касания от передачи детям - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь обернуть все «сцены» моего компонента в компонент мультитач * 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.

...