Usei o mais utilizado componente de terceiros para aplicar máscaras em TextInput, mas voltei ao meu próprio formatador de máscaras. 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 fluida 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.
Qual é a dúvida?
Se há uma forma programática, existente e viável para desenvolvedores mobile (não para desenvolvedores de baixo nível), de eliminar esse delay pra não precisar causar apenas uma única re-renderização. Caso sim, qual.