Alle componenten

MotionStream

Gestreamde tekst die in een gelijkmatig tempo wordt onthuld en stoten bijbeent.

WebReact NativeGetallen en tekst

Probeer het

Voorbeeld voorbereiden…

Kortste gebruik

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

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

Wat het voor je regelt

  • Stoten worden leesbaar: tekst wordt onthuld met speed tekens per seconde in plaats van in brokken.
  • Een achterstand versnelt de onthulling zodat die binnen ongeveer catchUp milliseconden zichtbaar is.
  • Emoji, vlaggen en combinerende tekens worden nooit gesplitst, en een half ontvangen emoji wacht op de rest.
  • Een herschreven antwoord gaat verder vanaf het gedeelde begin in plaats van opnieuw te beginnen.
  • Onthulde tekens gaan direct naar de pagina; React rendert maar een paar keer per seconde.

Gebruik het voor

  • Het antwoord van een assistent in een chat.
  • Een build- of deploylog.
  • Live ondertitels.

Props

PropTypeStandaardBeschrijving
textstring—verplichtDe tekst tot nu toe. Groeiende tekst wordt gelijkmatig onthuld; een herschrijving gaat verder vanaf het gedeelde begin.
speednumber90Basistempo van onthullen in tekens per seconde.
catchUpnumber900Een achterstand wordt binnen ongeveer zoveel milliseconden onthuld door te versnellen.
initialbooleanfalseOnthul ook de tekst die bij de mount al aanwezig is (anders verschijnt die direct).
effect'fade' | 'none''fade'fade laat nieuwe tekens infaden; none toont ze direct.
children(visible: string) => ReactNodeEen functie die de getimede tekst krijgt, bijvoorbeeld om Markdown te renderen.
aselement'span'Het element dat wordt gerenderd.
onMotionComplete(text) => voidDraait elke keer dat de onthulling text heeft bijgebeend.

Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.

Web en React Native

Op het web faden nieuwe tekens in (effect="fade") en worden ze samengevoegd tot gewone, selecteerbare tekst. Een functie als kind krijgt de getimede string voor Markdown, hooguit om het andere frame. In een verborgen tabblad wordt alles in één keer getoond.

In React Native is de tekst een echte Text en verschijnt hij zonder fade.

Gebruikt in deze voorbeelden

Zoeken

Typ om de documentatie te doorzoeken.