Repository navigation
0.83 regressions (TextInput, Text) #55059
Copy link
Copy link
Open
Labels
Component: TextInputRelated to the TextInput component.Related to the TextInput component.Impact: RegressionDescribes a behavior that used to work on a prior release, but stopped working recently.Describes a behavior that used to work on a prior release, but stopped working recently.Issue: Author Provided ReproThis issue can be reproduced in Snack or an attached project.This issue can be reproduced in Snack or an attached project.Needs: React Native Team Attention
Description
Description
I've noticed at least 2 regressions with 0.83
❗[attached video below] TextInput layout change issues: changing value on TextInput doesn't seem to update layout correctly and reposition the views around it. We mainly noticed it when using TextInput to vertically align the phone number prefix text (+1) with real input
Less important but still, fontWeight on iOS kinda snaps between Bold/Normal, completely ignoring values like 500 600. I noticed #54976 which seems to address this issue but I'm not 100% confident if that's the cause. Wanted to highlight it while I get the chance
Steps to reproduce
- Init a fresh 0.83.1 app
- Copy and paste the
BrokenLayoutOnInputChangescomponent from the repro snack to the App.tsx and render it - Tap on the red area which toggles the
TextInputvalue between+1and+52to see that it layouts it incorrectly - Optionally try running it on 0.82.1 and observe that it works fine
React Native Version
0.83.1
Affected Platforms
Runtime - iOS
Output of npx @react-native-community/cli info
System:
OS: macOS 15.7.3
CPU: (14) arm64 Apple M4 Pro
Memory: 3.31 GB / 48.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 22.13.1
path: /Users/user/.volta/tools/image/node/22.13.1/bin/node
Yarn:
version: 4.9.2
path: /Users/user/.volta/tools/image/yarn/4.9.2/bin/yarn
npm:
version: 10.9.2
path: /Users/user/.volta/tools/image/node/22.13.1/bin/npm
Watchman:
version: 2025.05.26.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods: Not Found
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.5
- iOS 18.5
- macOS 15.5
- tvOS 18.5
- visionOS 2.5
- watchOS 11.5
Android SDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2513.14007798
Xcode:
version: 16.4/16F6
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.15
path: /usr/bin/javac
Ruby:
version: 3.4.4
path: /opt/homebrew/opt/ruby/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.0.0
wanted: 20.0.0
react:
installed: 19.2.0
wanted: 19.2.0
react-native:
installed: 0.83.1
wanted: 0.83.1
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
None needed
MANDATORY Reproducer
https://snack.expo.dev/@bigcupcoffee/broken-input-layout-repro
Screenshots and Videos
0.82.1 (working fine):
82.mp4
0.83.1 (not working fine):
83.mp4
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Component: TextInputRelated to the TextInput component.Related to the TextInput component.Impact: RegressionDescribes a behavior that used to work on a prior release, but stopped working recently.Describes a behavior that used to work on a prior release, but stopped working recently.Issue: Author Provided ReproThis issue can be reproduced in Snack or an attached project.This issue can be reproduced in Snack or an attached project.Needs: React Native Team Attention
Activity
oleksandr-dziuban commentedon Jan 8, 2026
And yes, on iOS for Text if numeric value specified, for example 200 or 300, text will always be bold.
If I specify "normal" string prop, it works as expected.
Seems like another regression issue on Text component
obabii-code commentedon Jan 8, 2026
The same in my project. If I use autoFocus for an input, after
onFocus- immediatelyonBluris triggering.migueldaipre commentedon Jan 9, 2026
Thank you for reporting the issue. I simulated it here, without expo and in the latest version as well (0.84.0-rc.0).
oleksandr-dziuban commentedon Jan 11, 2026
Can we have a quick patch like v0.83.2 with the regression issue fix for Input component?
oleksandr-dziuban commentedon Jan 12, 2026
RN Team, could you please check that regression issues for TextInput? Seems like a blocker for migration to RN v0.83.0
CC: @migueldaipre are you be able to repro autoFocus issue as well?
Thanks a lot guys
efstathiosntonas commentedon Jan 23, 2026
Is there an update to these breaking bugs? Thank you
Fix iOS TextInput IME composition issues for CJK languages
Fix iOS TextInput IME composition issues for CJK languages
ShanavasPS commentedon Mar 22, 2026
This workaround seems to be working for now
<TextInput + key={value} value={value} editable={false} />efstathiosntonas commentedon Mar 22, 2026
@ShanavasPS don’t do that, it’s a terrible anti-pattern
ShanavasPS commentedon Mar 22, 2026
@efstathiosntonas Thanks for the response. Is there is a better workaround or a fix for this?
bigcupcoffee commentedon Mar 24, 2026
Sorry to ping you @cortinico @cipolleschi but can we have some eyes on TextInput components 🥺? Controlled are usually laggy and can't handle cursor properly when typing faster, switching to uncontrolled makes them not grow anymore, it's barely functioning outside of basic cases and feels like we need to add workaround after workaround since 0.8x
For those looking for (yet another) workaround - I've found that double updating the TextInput helps, can be achieved via
setNativeProps({ text: newState })for example. So either add that right next to your setState, which will update it twice, or even just calling setNativeProps twice (with sametext) works, it's somewhat acceptable workaround for the specific case, but for some frequent updates, e.g. from user input, I'd probably refrain from this oneleotaozeng commentedon Apr 20, 2026
Thanks. the setNativeProps solution works for now
fasvald commentedon May 19, 2026
Greetings. Any updates regarding this issue? Would RN team tackle it in future releases.
We do have a workaround with an adding a hidden text to calculate the width and put it for the original input, but it looks like a hardcoded fix and I would prefer to have a proper solution from the RN :) Or to whom should I address this question.
Thanks a lot.
tom-at-pixel commentedon Sep 8, 2026
Is this still an issue in React Native v0.87.x?