Todos os componentes

MotionStream

Texto em streaming exibido em ritmo constante, que alcança as rajadas.

WebReact NativeNúmeros e texto

Experimente

Preparando o exemplo…

Uso mais curto

Answer.jsx
<MotionStream text={answerSoFar} initial />

<MotionStream text={answerSoFar}>
  {visible => <Markdown>{visible}</Markdown>}
</MotionStream>

O que ele resolve para você

  • 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

PropTipoPadrãoDescrição
textstring—obrigatóriaO texto até agora. Texto que cresce aparece em ritmo constante; uma reescrita continua do começo em comum.
speednumber90Velocidade base de exibição, em caracteres por segundo.
catchUpnumber900Um acúmulo é exibido em cerca desse número de milissegundos, acelerando.
initialbooleanfalseExibe 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) => ReactNodeUma função que recebe o texto no ritmo, por exemplo para renderizar Markdown.
aselement'span'O elemento a renderizar.
onMotionComplete(text) => voidRoda 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.

Usado nestes exemplos

Pesquisar

Digite para pesquisar na documentação.