facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
119.28k stars 24.35k forks source link

TextInput multiline is jumpy and flaky when pressing new line #33165

Open aprilmintacpineda opened 2 years ago

aprilmintacpineda commented 2 years ago

Description

When you set mutline to true and enter/delete new lines, the scrolling is really flaky. Notice that this app was instantiated with npx react-native init myapp --template react-native-template-typescript

Android

https://user-images.githubusercontent.com/21032419/155330305-e22acaae-0e77-422b-af85-c565f0e81073.mov

iOS

https://user-images.githubusercontent.com/21032419/155330662-c1bd6d24-d02a-4c6d-a6d4-8ce2010537cf.mov

Version

0.67.2

Output of npx react-native info

info Fetching system and libraries information...
System:
    OS: macOS 11.6
    CPU: (8) x64 Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
    Memory: 72.38 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    Yarn: 1.22.17 - ~/projects/samalapit/sellers/mobile-app/node_modules/.bin/yarn
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
    Watchman: 2021.12.06.00 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.2 - /Users/aprilmintacpineda/.rvm/gems/ruby-3.0.2/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 21.2, iOS 15.2, macOS 12.1, tvOS 15.2, watchOS 8.3
    Android SDK: Not Found
  IDEs:
    Android Studio: 2020.3 AI-203.7717.56.2031.7935034
    Xcode: 13.2.1/13C100 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.11 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2 
    react-native: 0.67.2 => 0.67.2 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce

import { TextInput } from 'react-native';
<TextInput
  style={{
    borderWidth: 1,
    borderColor: '#000'
  }}
  multiline
/>

Adding scrollEnabled={false} will somehow fix the issue but:

Snack, code example, screenshot, or link to a repository

No response

aprilmintacpineda commented 2 years ago

Am I really the only one experiencing this? It's quite weird that this isn't getting any attention, because it's literally just plain text input so I would expect others to experience this.

efstathiosntonas commented 2 years ago

@aprilmintacpineda I’m encountering the same thing, awaiting for a fix

aprilmintacpineda commented 2 years ago

@aprilmintacpineda what react native version you’re using? A fix has been merged a while back.

0.67.3

I just saw 0.67.4 but the release notes doesn't talk about anything related to ios, it talked about a text input bug related to android. I'm just about to try it.

EDIT:

I'm now on 0.67.4 it still happens

@aprilmintacpineda I’m encountering the same thing, awaiting for a fix

Thanks for confirming! That gives me hope!

efstathiosntonas commented 2 years ago

@aprilmintacpineda ignore the first quote on your comment above, I confused the issues 🥴.

Omelyan commented 2 years ago

oh, this has been around for years. yes it's a regular text input that flickers in a very basic scenario so user can tell for sure if the app was made using RN)) the problem seems to be due to lack of space to render the string, or some like that, so I made a wrapper that measures the size of text and sets a min height (+some extra actually) for the input. Not perfect, bu now I'm using it.

efstathiosntonas commented 2 years ago

@Omelyan do you mind sharing the wrapper?

JCown commented 1 year ago

Any update on that?

jonasmoeller commented 1 year ago

Same Issue here, I'm trying to make a Note writting app. This only seems to happen when the TextInput Field is not already covering the whole screen, as soon as you get into the range where you can scroll your text it stops the behaviour.

Norcy commented 1 year ago

Adding scrollEnabled={false} can solve it

alexking commented 10 months ago

Also experiencing this problem - feels like it should be prioritized as it makes long text input unusable (unless you can turn off scrolling).

Related: https://github.com/facebook/react-native/issues/16826

github-actions[bot] commented 4 months ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.

Omelyan commented 4 months ago

this issue is not stale as it still exists.

AspireOne commented 1 month ago

Well, here we are, in September 2024, and the issue still exists.

jonasmoeller commented 1 month ago

React is cooked.

Kakaranara commented 1 month ago

Oct 2024 issue still exist.

naytun commented 1 month ago

According to @dan_abramov2, removing Multiline will fix this. Here's the source YouTube, X (Twitter)

cc: @Kakaranara @AspireOne @Omelyan @alexking

brandon-austin-lark commented 2 days ago

Nov 2024 still broken