react / react/react-native

`ScrollView` handles gestures while `PanResponder` is active

Offen
#51,970 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

API: PanResponder Component: ScrollView Help Wanted :octocat: Issue: Author Provided Repro Type: New Architecture
Vorherrschende Sprache
C++
Sterne
127k
Forks
25.3k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
4

Beschreibung

Description

Coming from react-native@0.73.x without new architecture the ScrollView was locked when the PanResponder was handling the drag interactions. Now in the latest react-native version (0.79.x) the ScrollView scrolls while the PanResponder is active.

Steps to reproduce
  1. In a ScrollView add a View with PanResponder.handlers
  2. Drag the View
React Native Version

0.79.3

Affected Platforms

Runtime - iOS

Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
  OS: macOS 15.5
  CPU: (14) arm64 Apple M4 Pro
  Memory: 1.25 GB / 48.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.20.5
    path: ~/.nvm/versions/node/v18.20.5/bin/node
  Yarn:
    version: 1.22.22
    path: ~/.nvm/versions/node/v18.20.5/bin/yarn
  npm:
    version: 10.8.2
    path: ~/.nvm/versions/node/v18.20.5/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/colin/.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: 2024.2 AI-242.23339.11.2421.12550806
  Xcode:
    version: 16.2/16C5032a
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 21.0.3
    path: /Users/colin/.sdkman/candidates/java/current/bin/javac
  Ruby:
    version: 3.3.6
    path: /Users/colin/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 18.0.0
    wanted: 18.0.0
  react:
    installed: 19.0.0
    wanted: 19.0.0
  react-native:
    installed: 0.79.3
    wanted: 0.79.3
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true
Stacktrace or Logs
Running "ReproducerApp" with {"rootTag":1,"initialProps":null,"fabric":true}
MANDATORY Reproducer

https://github.com/buschco/react-native-flow/tree/pan

Screenshots and Videos

https://github.com/user-attachments/assets/dbbd1f69-4175-4a00-945d-7271e3f01312

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem verpflichtenden Reproducer und reproduziere das iOS-Verhalten mithilfe der aufgeführten React Native 0.79.3-Konfiguration. Verfolge während des Ziehens die Interaktion zwischen ScrollView und PanResponder und vergleiche sie mit dem gemeldeten Verhalten unter 0.73.x. Die Aufgabe ist abgeschlossen, wenn ScrollView gesperrt bleibt, während PanResponder das Gesture verarbeitet, und ein Regressionstest diesen Fall abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
react-native
Bereich
mobile
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.