-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TextInput
cursor lags behind text when component is controlled if Auto-Correction and Predictive Text are enabled
#44157
Comments
|
Hi @mozzius, thanks for the issue and also for the reproducer, that's super valuable. FWIW, I have seen the cursor jumping also in fully Native apps. We will surely investigate the issue, but it could also be something on Apple side, especially if you mention that this is starting happening in iOS 17 specifically. Would you be able to test it on an iOS 16 device? |
Here's an 16.4 simulator - surprisingly, it's present here too. It's definitely still the autocorrect though - turning off "Auto-Correction" and "Predictive" fixes it. Screen.Recording.2024-04-19.at.15.21.48.mov |
So happy to come across this issue, as I've been assuming I was somehow doing something wrong in my uses of TextInput while trying to debug this problem in my app. While researching, I was reminded of this change from a couple of years ago: https://reactnative.dev/blog/2021/09/01/preparing-your-app-for-iOS-15-and-android-12#quicktype-bar Could totally be a red herring, but just thought I'd throw it out there in case its somehow relevant. I tried testing inputs with spellcheck disabled, but due to the inconsistency of the bug, I'm having a hard time deciding if it's actually making a difference or not. |
Took some time to look at this yesterday, seems to boil down to I'll set aside some time today or tomorrow to dig deeper, but if anyone wants to give it a go - you are more than encouraged to do so :) I'm curious though: @mozzius @megantaylor - Are you seeing this happen with "normal" user typing? I couldn't repro when typing normal text on a phone. |
@hezi yes, we have been able to repro with "normal" typing on actual devices. |
Hey @hezi! @mozzius may have missed this, was cleaning up some tickets and was reminded of the issue. We definitely have seen this on device as well, albeit not nearly as noticeable. Sometimes though the cursor will indeed skip behind a character or two, though you do need to be typing fairly quickly to notice it. Appreciate you taking a look at this! |
Probably worth noting that this was more prevalent on some older iPhones from my experience. It is much easier to produce on an iPhone X for example than my 14, though it does produce on both. |
I have a iPhone 14 pro and the bug raise too. Also when I type on iOS simulator. Any work around or solution? |
Is there any progress? |
Description
Whilst typing very fast, we've observed that the cursor can lag behind where you are typing, which means that characters get inserted in the middle of the word. We believe that we've narrowed it down to something with the autocorrect/predictive text messing up the cursor position. This only happens to fully controlled inputs - specifically if passing it the
value
prop. Ifvalue
is not passed, it seems to be unaffected.Going into Settings > General > Keyboard and turning off both "Auto-Correction" and "Show Predictions Inline" resolves the issue entirely, leading us to believe it's something to do with the iOS 17 inline predictive text. However, we've found that disabling autocorrect via the
autoCorrect
prop does not consistently fix the issue, although it improves it ever so slightly.We've observed this in production on iOS, but is a lot easier to replicate on the iOS simulator (presumably since it's slower).
Steps to reproduce
Note that the spam typing does not have a 100% success rate, so you might have to try a couple of times
React Native Version
0.73.7
Affected Platforms
Runtime - iOS
Output of
npx react-native info
Stacktrace or Logs
Reproducer
https://github.com/mozzius/laggy-textinput-repro
Screenshots and Videos
Simulator.Screen.Recording.-.iPhone.15.-.2024-04-19.at.01.55.32.mp4
The text was updated successfully, but these errors were encountered: