Logo Hardware.com.br
LeandroCGMS
LeandroCGMS Membro Senior Registrado
378 Mensagens 28 Curtidas

[Resolvido] TextInput, Prop onChangeText e Re-renderizações

#1 Por LeandroCGMS 13/03/2025 - 12:46
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
LeandroCGMS Membro Senior Registrado
378 Mensagens 28 Curtidas
#3 Por LeandroCGMS
28/03/2025 - 11:11
Depois destas abordagens, ainda deixei de usar “useState”, para não haver re-renderizações, pra usar useRef, alterando apenas a prop text, por achar que o problema era a re-renderização do TextInput. Mas, hoje, resolvi baixar o Microsoft Swiftkey e, tcharam, funcionou como um teclado físico sem delay. Todo esse problema é o funcionamento do Gboard.
"A ignorância é a escuridão que nos impede de ver além, enquanto o conhecimento é a luz que nos guia para um futuro melhor." - Autor desconhecido.
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal