Using `toUpperCase` or `textTransform: 'uppercase'` breaks on an Android controlled TextInput
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
React Native version: 0.61.4 and lower
Trying to force capitalization of characters inside a TextInput is broken on Android.
autoCapitalize="characters"doesn't seem to do anything- Using
toUpperCasein the onChangeText hook causes duplication of letters - Using
textTransform: 'uppercase'in styles block causes the same duplication of letters - Using
textTransform: 'uppercase'in a non-controlled TextInput does nothing
Steps To Reproduce
- Create a controlled TextInput and either use onTextChanged to modify the text to uppercase or use text transform in the styles block
- Type multiple lowercase characters into the text box
Describe what you expected to happen:
Characters should be capitalized
What actually happens:
Characters are capitalized and duplicated
Snack, code example, screenshot, or link to a repository:
https://snack.expo.io/@nmi09/rn-android-capitalize-input-bug

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Snack reproduction and the controlled Android TextInput entry point, testing autoCapitalize, onChangeText transformations, and textTransform: 'uppercase'. Confirm that lowercase input is capitalized without duplicated characters, and check the reported non-controlled behavior as well.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100