iOS: Multiline TextInput onKeyPress event handler unexpectedly receives a Backspace event
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C++
- Sterne
- 127k
- Forks
- 25.3k
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
Description
The TextInput onKeyPress event handler receives an unexpected Backspace event when multiline is true. The exact behavior varies between iOS 15 and iOS 16:
- iOS 15: The
Backspaceevent is received aftervalueis reset to an empty string - iOS 16: The
Backspaceevent is received on EVERY change AND whenvalueis reset to an empty string
This has been tested on iOS 15.5, 16.4, and 16.5.
Possibly related: https://github.com/facebook/react-native/issues/34891
React Native Version
0.71.11
Output of npx react-native info
System:
OS: macOS 13.4
CPU: (16) x64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
Memory: 27.38 GB / 64.00 GB
Shell: 5.9 - /usr/local/bin/zsh
Binaries:
Node: 18.16.0 - ~/.asdf/installs/nodejs/18.16.0/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 9.6.6 - ~/.asdf/plugins/nodejs/shims/npm
Watchman: Not Found
Managers:
CocoaPods: 1.12.1 - /Users/jeff/.asdf/shims/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
Android SDK: Not Found
IDEs:
Android Studio: 2022.2 AI-222.4459.24.2221.10121639
Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
Languages:
Java: 11.0.13 - /Users/jeff/.asdf/shims/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.2.0 => 18.2.0
react-native: 0.71.11 => 0.71.11
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
- Add a
<TextInput multiline />component and log all events received byonKeyPress - Type into the input
- Observe that an event with
nativeEvent.keyset to'Backspace'is received after everyonKeyPressevent is received for the typed key
Snack, code example, screenshot, or link to a repository
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der verknüpften RN071TextInputBackspace-Reproduktion und untersuche den TextInput onKeyPress-Ereignispfad unter iOS, wobei du das Verhalten bei mehrzeiligem Text unter iOS 15 und 16 vergleichst. Als abgeschlossen gilt die Aufgabe, wenn das Eingeben und Zurücksetzen des Werts keine unbeabsichtigten Backspace-Ereignisse mehr erzeugt, während echte Tastaturereignisse erhalten bleiben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- ios, 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
- 45/100