Skip to content

[V3]TextInput with pointerEvents="none" blocks parent Pressable #4295

Description

@AlexCernik

Description

I use Select component of Gluestack in bare React Native, after upgrading react-native-gesture-handler from v2 to v3 (3.0.2), any TextInput with pointerEvents="none" and editable={false} placed inside a Pressable prevents the Pressable from receiving touch events. Tapping the area where the TextInput is rendered does not trigger onPress, while tapping other children (e.g., an icon) works correctly.

This breaks components like Gluestack UI’s Select, where the trigger contains a non-editable SelectInput (rendered as a TextInput) and an icon. Only the icon area can open the select; touching the input text area does nothing.

Steps to reproduce

Steps to reproduce

Create a Pressable that wraps a TextInput with pointerEvents="none" and editable={false}, and an Icon.

Try to tap the TextInput area.

Notice that onPress does not fire. Tapping the icon area works fine.

Here’s a minimal code snippet that reproduces the issue:

import React from 'react';
import { Pressable, TextInput, View, Text } from 'react-native';
import { GestureHandlerRootView } from 'react-native-gesture-handler';

export default function App() {
  const [count, setCount] = React.useState(0);

  return (
    <GestureHandlerRootView style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Pressable
        onPress={() => setCount(c => c + 1)}
        style={{ borderWidth: 1, padding: 10 }}
      >
        {/* This TextInput breaks the Pressable on RNGH v3 */}
        <TextInput
          value="Tap me"
          editable={false}
          pointerEvents="none"
          style={{ color: 'black' }}
        />
        <Text>Icon area (works)</Text>
      </Pressable>
      <Text style={{ marginTop: 20 }}>Press count: {count}</Text>
    </GestureHandlerRootView>
  );
}

A link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.

...

Gesture Handler version

3.0.2

React Native version

0.86.0

Platforms

Android

JavaScript runtime

None

Workflow

React Native (without Expo)

Architecture

New Architecture (Fabric)

Build type

Debug mode

Device

Real device

Device model

Samsung Galaxy J8 (Android 10)

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions