Description
In the code below, when run on oldArch, the child's onPress is cancelled, and instead the Parent's onPress is honoured. On the new arch, it is no longer the case.
We use this in some contexts when a deep, deep component child has a pressable, and we do not need it; instead, we want the parent one to be triggered.
Can we have the same behaviour as on the old architecture?
<View style={styles.container}>
<Pressable
style={styles.parentContainer}
onPress={handleParentPress}
>
<Text style={styles.parentText}>Parent Component</Text>
<View pointerEvents="box-only">
<Pressable
style={styles.childContainer}
onPress={()=> console.log('Child Pressable pressed!')}
>
<Text style={styles.childText}>{title}</Text>
</Pressable>
</View>
</Pressable>
</View>
Steps to reproduce
- Have a Parent touchable and a child touchable.
- Wrap your child's toucable with a view using
pointerEvents="box-only"
- Build on the old arch, press the child and it triggers the parent onPress (expected)
- Build on the new arch, press the child, and it triggers the child onPress while we expect the parent one.
React Native Version
0.81.0
Affected Platforms
Runtime - Android
Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
OS: macOS 15.6.1
CPU: (12) arm64 Apple M2 Pro
Memory: 74.70 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.19.4
path: ~/.nvm/versions/node/v20.19.4/bin/node
Yarn:
version: 1.22.22
path: ~/.nvm/versions/node/v20.19.4/bin/yarn
npm:
version: 10.8.2
path: ~/.nvm/versions/node/v20.19.4/bin/npm
Watchman:
version: 2025.08.18.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /Users/dprevost/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.27812.49.2514.14217341
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.16
path: /usr/bin/javac
Ruby:
version: 3.3.3
path: /Users/dprevost/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.0.0
wanted: 20.0.0
react:
installed: 19.1.0
wanted: 19.1.0
react-native:
installed: 0.81.0
wanted: 0.81.0
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Stacktrace or Logs
MANDATORY Reproducer
Reproduce on RN 81:
https://github.com/dprevost-LMI/rn81/tree/double-touchable
Reproduce on RN 82:
https://github.com/dprevost-LMI/rn82/tree/double-touchable
Screenshots and Videos
As shown below, under the old arch, pressing the parent or the child, console log Parent Pressable pressed!

Under the new arch, pressing the child output Child Pressable pressed!

I reproduce on RN 82 too.

Description
In the code below, when run on oldArch, the child's onPress is cancelled, and instead the Parent's onPress is honoured. On the new arch, it is no longer the case.
We use this in some contexts when a deep, deep component child has a pressable, and we do not need it; instead, we want the parent one to be triggered.
Can we have the same behaviour as on the old architecture?
Steps to reproduce
pointerEvents="box-only"React Native Version
0.81.0
Affected Platforms
Runtime - Android
Output of
npx @react-native-community/cli infoStacktrace or Logs
MANDATORY Reproducer
Reproduce on RN 81:
https://github.com/dprevost-LMI/rn81/tree/double-touchable
Reproduce on RN 82:
https://github.com/dprevost-LMI/rn82/tree/double-touchable
Screenshots and Videos
As shown below, under the old arch, pressing the parent or the child, console log

Parent Pressable pressed!Under the new arch, pressing the child output

Child Pressable pressed!I reproduce on RN 82 too.
