MotionStream
Tekst strumieniowany odsłaniany w równym tempie, który nadrabia serie.
SiećReact NativeLiczby i tekst
Wypróbuj
Przygotowywanie przykładu…
Najkrótsze użycie
<MotionStream text={answerSoFar} initial />
<MotionStream text={answerSoFar}>
{visible => <Markdown>{visible}</Markdown>}
</MotionStream>Co robi za ciebie
- Serie zamieniają się w czytanie: tekst odsłania się z prędkością
speedznaków na sekundę zamiast kawałkami. - Zaległość przyspiesza odsłanianie, by pokazać ją w około
catchUpmilisekund. - Emoji, flagi i znaki łączące nigdy nie są dzielone, a emoji odebrane w połowie czeka na resztę.
- Przepisana odpowiedź kontynuuje od wspólnego początku zamiast zaczynać od nowa.
- Odsłonięte znaki trafiają prosto na stronę; React renderuje tylko kilka razy na sekundę.
Do czego służy
- Odpowiedź asystenta w czacie.
- Log builda lub wdrożenia.
- Napisy na żywo.
Props
| Prop | Typ | Domyślnie | Opis |
|---|---|---|---|
text | string | —wymagane | Dotychczasowy tekst. Rosnący tekst odsłania się w równym tempie; przepisanie kontynuuje od wspólnego początku. |
speed | number | 90 | Bazowa prędkość odsłaniania w znakach na sekundę. |
catchUp | number | 900 | Zaległość jest odsłaniana w mniej więcej tylu milisekundach dzięki przyspieszeniu. |
initial | boolean | false | Odsłaniaj też tekst obecny przy montażu (w przeciwnym razie pokazuje się od razu). |
effect | 'fade' | 'none' | 'fade' | fade wprowadza nowe znaki stopniowo; none pokazuje je od razu. |
children | (visible: string) => ReactNode | Funkcja dostająca tekst w wyrównanym tempie, na przykład do renderowania Markdown. | |
as | element | 'span' | Element do wyrenderowania. |
onMotionComplete | (text) => void | Uruchamia się za każdym razem, gdy odsłanianie dogoni text. |
Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.
Sieć i React Native
W sieci nowe znaki pojawiają się stopniowo (effect="fade") i są wtapiane w zwykły tekst do zaznaczenia. Dziecko-funkcja dostaje tekst w wyrównanym tempie do Markdown, najwyżej co drugą klatkę. W ukrytej karcie wszystko pokazuje się od razu.
W React Native tekst to prawdziwy Text i pojawia się bez zanikania.