Rajadas viram leitura: o texto aparece a speed caracteres por segundo em vez de em blocos.
Um acúmulo acelera a exibição para aparecer em cerca de catchUp milissegundos.
Emojis, bandeiras e marcas combinadas nunca são partidos, e um emoji recebido pela metade espera o resto.
Uma resposta reescrita continua do começo em comum em vez de recomeçar.
Os caracteres exibidos vão direto para a página; o React só renderiza poucas vezes por segundo.
Use para
A resposta de um assistente em um chat.
Um log de build ou deploy.
Legendas ao vivo.
Props
Prop
Tipo
Padrão
Descrição
text
string
—obrigatória
O texto até agora. Texto que cresce aparece em ritmo constante; uma reescrita continua do começo em comum.
speed
number
90
Velocidade base de exibição, em caracteres por segundo.
catchUp
number
900
Um acúmulo é exibido em cerca desse número de milissegundos, acelerando.
initial
boolean
false
Exibe aos poucos também o texto presente na montagem (senão ele aparece na hora).
effect
'fade' | 'none'
'fade'
fade faz os caracteres novos aparecerem com fade; none os mostra direto.
children
(visible: string) => ReactNode
Uma função que recebe o texto no ritmo, por exemplo para renderizar Markdown.
as
element
'span'
O elemento a renderizar.
onMotionComplete
(text) => void
Roda sempre que a exibição alcança text.
As outras props vão para o elemento renderizado, então className, style e handlers de eventos funcionam normalmente.
Web e React Native
Na web, os caracteres novos aparecem com fade (effect="fade") e são incorporados a texto comum e selecionável. Um filho função recebe a string no ritmo, para Markdown, no máximo a cada dois quadros. Em uma aba oculta, tudo aparece de uma vez.
No React Native, o texto é um Text de verdade e aparece sem fade.