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