-
Notifications
You must be signed in to change notification settings - Fork 24.8k
Closed
Labels
Component: TextInputRelated to the TextInput component.Related to the TextInput component.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.Platform: AndroidAndroid applications.Android applications.Resolution: FixedA PR that fixes this issue has been merged.A PR that fixes this issue has been merged.
Description
Description
Create a TextInput
component with value
and selection
attributes, then programmatically focus it after a delay. You'll find the caret at the beginning instead of at the specified selection.
This is only reproducible under the New Arch.
Steps to reproduce
- Clone reproducer or use the code below.
// App.tsx
import { TextInput } from 'react-native';
import { useEffect, useRef} from 'react';
export default function App() {
const input = useRef(null);
useEffect(() => { setTimeout(() => input.current?.focus(), 1000); }, []);
return <TextInput ref={input} value='1.00' selection={{start: 4, end: 4}} />;
}
-
Build the app with New Arch enabled and run it on Android.
-
Wait a second.
Expected result: The caret is at the end.
Actual result: The caret is at the beginning.
React Native Version
0.75.4
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
OS: Linux 5.15 Linux Mint 21.3 (Virginia)
CPU: (6) x64 AMD Ryzen 5 3500X 6-Core Processor
Memory: 37.72 GB / 39.16 GB
Shell:
version: 5.1.16
path: /bin/bash
Binaries:
Node:
version: 20.15.1
path: ~/.nvm/versions/node/v20.15.1/bin/node
Yarn:
version: 3.6.4
path: ~/.nvm/versions/node/v20.15.1/bin/yarn
npm:
version: 10.7.0
path: ~/.nvm/versions/node/v20.15.1/bin/npm
Watchman:
version: 20231008.002904.0
path: /usr/local/bin/watchman
SDKs:
Android SDK:
API Levels:
- "31"
- "33"
- "34"
Build Tools:
- 33.0.1
- 34.0.0
System Images:
- android-34 | Intel x86_64 Atom
- android-34 | Google APIs Intel x86_64 Atom
Android NDK: Not Found
IDEs:
Android Studio: Not Found
Languages:
Java:
version: 17.0.12
path: /usr/bin/javac
Ruby: Not Found
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.75.4
wanted: 0.75.4
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
Stacktrace or Logs
N/A
Reproducer
https://github.com/QichenZhu/reproducer-react-native-textinput.git
Screenshots and Videos
374435192-5f3094ec-f253-45ac-8438-0d0d38db5268.mp4
Metadata
Metadata
Assignees
Labels
Component: TextInputRelated to the TextInput component.Related to the TextInput component.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.Platform: AndroidAndroid applications.Android applications.Resolution: FixedA PR that fixes this issue has been merged.A PR that fixes this issue has been merged.