镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

0.83 regressions (TextInput, Text) #55059

Description

@bigcupcoffee

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

  1. Init a fresh 0.83.1 app
  2. Copy and paste the BrokenLayoutOnInputChanges component from the repro snack to the App.tsx and render it
  3. Tap on the red area which toggles the TextInput value between +1 and +52 to see that it layouts it incorrectly
  4. 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

Activity

  1. added
    Impact: RegressionDescribes a behavior that used to work on a prior release, but stopped working recently.
    on Jan 6, 2026
  2. oleksandr-dziuban commented on Jan 8, 2026

    @oleksandr-dziuban

    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

  3. obabii-code commented on Jan 8, 2026

    @obabii-code

    The same in my project. If I use autoFocus for an input, after onFocus - immediately onBlur is triggering.

  4. migueldaipre commented on Jan 9, 2026

    @migueldaipre
    Collaborator

    Thank you for reporting the issue. I simulated it here, without expo and in the latest version as well (0.84.0-rc.0).

  5. oleksandr-dziuban commented on Jan 11, 2026

    @oleksandr-dziuban

    Can we have a quick patch like v0.83.2 with the regression issue fix for Input component?

  6. oleksandr-dziuban commented on Jan 12, 2026

    @oleksandr-dziuban

    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

  7. efstathiosntonas commented on Jan 23, 2026

    @efstathiosntonas

    Is there an update to these breaking bugs? Thank you

  8. ShanavasPS commented on Mar 22, 2026

    @ShanavasPS

    This workaround seems to be working for now

    <TextInput
    +  key={value}
      value={value}
      editable={false}
    />
  9. efstathiosntonas commented on Mar 22, 2026

    @efstathiosntonas

    @ShanavasPS don’t do that, it’s a terrible anti-pattern

  10. ShanavasPS commented on Mar 22, 2026

    @ShanavasPS

    @efstathiosntonas Thanks for the response. Is there is a better workaround or a fix for this?

  11. bigcupcoffee commented on Mar 24, 2026

    @bigcupcoffee
    ContributorAuthor

    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 same text) 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 one

  12. leotaozeng commented on Apr 20, 2026

    @leotaozeng

    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 same text) 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 one

    Thanks. the setNativeProps solution works for now

  13. fasvald commented on May 19, 2026

    @fasvald

    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.

  14. tom-at-pixel commented on Sep 8, 2026

    @tom-at-pixel

    Is this still an issue in React Native v0.87.x?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions