Usei o mais utilizado componente de terceiros para aplicar máscaras em TextInput. Antes disso, tentei alternativas como usar “useCallback” do React, tentei também requestAnimationFrame, além de outras abordagens, mas o resultado é o mesmo.
Se o texto é digitado com o teclado físico, mesmo em modo debug, o texto é digitado rapidamente. Se o texto é digitado com um teclado virtual no Android, é como se o teclado virtual precisasse do TextInput ativo para ele enviar ao TextInput um novo caracter, resultando em um delay e impedindo uma digitação fuida e rápida. Já com o teclado físico é como se o próprio TextInput buscasse no S.O. o texto entrado.
A única solução que encontrei é formatar o texto somente quando ele chegar ao tamanho final para haver uma única re-renderização.
Pelo que observei, não há uma forma do teclado virtual funcionar de forma similar a um teclado físico, mesmo com componentes de terceiros, como o react-native-mask-text.

LeandroCGMS
Membro Senior
Registrado
378 Mensagens
28 Curtidas
[Resolvido] TextInput, Prop onChangeText e Re-renderizações
#1 Por LeandroCGMS
13/03/2025 - 12:46