-
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] input cannot be controlled #34437
Comments
Use defaultValue rather than value. |
@kito-arch unfortunately that's not the same thing. the whole point of using |
@jjenzz |
@kito-arch sorry, i think my example is being taken a bit too literally... the bug is that "controlling" doesn't work. i just used the I should be able to do something like this without the user's input appearing beforehand: const Foo = () => {
const [value, setValue] = React.useState('');
return (
<TextInput
value={value}
onKeyPress={event => {
if (['a', 'l', 'l', 'o', 'w', 'e', 'd'].includes(event.nativeEvent.key)) {
setValue(prev => prev + event.nativeEvent.key);
}
}}
/>
);
} this is another contrived example, but the point is i should be able to control the input value. |
There are some cases where flickering will happen in case you do not use editable. As per docs says, I guess we have no other options for now. |
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. |
this is still an issue in a new snack with latest https://snack.expo.dev/@fungiblejen/jealous-tortillas |
Any updates on this? or any workaround? |
Description
TextInput
value cannot be controlled. Given the following JSX, I expected that typing in the input would do nothing to match behaviour on web:Actual behaviour
The value typed by the user flickers on screen before being removed.
RPReplay_Final1660743487.MP4
Version
0.70.0-rc.2
Output of
npx react-native info
System:
OS: macOS 12.5
CPU: (10) arm64 Apple M1 Max
Memory: 108.61 MB / 32.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.7.0 - /usr/local/bin/node
Yarn: Not Found
npm: 8.15.0 - /usr/local/bin/npm
Watchman: 2022.08.15.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK: Not Found
IDEs:
Android Studio: 2021.2 AI-212.5712.43.2112.8815526
Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
Languages:
Java: 11.0.16 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
Snack, code example, screenshot, or link to a repository
https://snack.expo.dev/YtYVsPnOU
The text was updated successfully, but these errors were encountered: