Text: ano ito, pagpapakita ng teksto at React Native

May-akda: IT Sectr Nai-publish: 2026-07-05 Oras ng pagbabasa: 9 min

Ang sangkap na Text sa React Native ay ang tanging paraan upang magpakita ng teksto sa screen, hindi tulad sa web kung saan ginagamit ang iba't ibang mga tag (p, span, h1-h6). Sinusuportahan ng Text ang nesting para sa cascading inheritance ng mga estilo, pagproseso ng mga touch event at awtomatikong pagputol ng linya. Ayon sa React Native Docs, 2024, ang Text ay ang pangalawang pinakamadalas na ginagamit na sangkap pagkatapos ng View. Ang sangkap ay nagre-render sa native na UILabel sa iOS at TextView sa Android, na tinitiyak ang tamang paggana ng mga font at accessibility.

Mga pangunahing punto

  • Text ay ang tanging sangkap ng React Native para sa pagpapakita ng teksto
  • Sinusuportahan ang nesting para sa pag-istilo ng mga indibidwal na bahagi ng teksto
  • Nagmamana ng estilo ang Text mula sa mga sangkap na Text na magulang
  • Nagre-render sa UILabel sa iOS at TextView sa Android
  • Sinusuportahan ang numberOfLines at adjustsFontSizeToFit para sa pamamahala ng pagpapakita

Ano ang Text sa React Native

Text ay isang sangkap ng React Native para sa pagpapakita ng tekstuwal na nilalaman. Hindi tulad sa pag-develop ng web, kung saan maraming semantikong tag para sa teksto, sa React Native lahat ng elemento ng teksto ay ginagawa sa pamamagitan ng Text. Ang sangkap ay maaaring magpakita ng parehong simpleng teksto at kumplikadong mga istraktura na may nested Text at naka-istilong mga fragment.

Awtomatikong pinangangasiwaan ng Text ang pagputol ng linya, kinokontrol ang pamilya ng font, laki, kulay at pagkakahanay. Sinusuportahan ng sangkap ang mga touch event (onPress), na nagpapahintulot sa paggawa ng mga naki-click na link nang walang karagdagang mga wrapper. Isang mahalagang limitasyon: Ang Text ay hindi maaaring direktang ilagay sa View — sa iba pang mga sangkap na Text lamang o bilang direktang nilalaman.

Ayon sa React Native Nested Text, 2024, ang mga nested na sangkap na Text ay nagmamana ng mga estilo mula sa magulang. Ito ay nagpapahintulot sa pagtatakda ng base na estilo sa itaas na antas at pag-override ng mga indibidwal na katangian para sa mga tiyak na fragment — katulad ng paggana ng span gamit ang CSS sa web.

Mga katangian at API ng sangkap na Text

Ang sangkap na Text ay nagbibigay ng isang set ng mga props para sa pamamahala ng pagpapakita, pag-uugali at accessibility. Mga pangunahing kategorya: mga props ng estilo (font, laki, kulay, pagkakahanay), mga props ng pagpapakita (numberOfLines, lineBreakMode) at interaktibo (onPress, onLongPress).

Mga props ng pagpapakita ng teksto

numberOfLines ay naglilimita sa bilang ng mga linyang ipinapakita, nagdaragdag ng elipsis sa dulo. ellipsizeMode ay kumokontrol sa posisyon ng elipsis (head, middle, tail, clip). adjustsFontSizeToFit ay awtomatikong nagpapaliit ng laki ng font upang kasya ang teksto sa itinakdang hangganan. lineBreakMode ay tumutukoy kung paano putulin ang teksto na lampas sa numberOfLines.

Mga interaktibong props

Sinusuportahan ng Text ang onPress at onLongPress para sa pagproseso ng mga pagpindot. Ito ay nagpapahintulot sa paggawa ng mga tekstuwal na link nang hindi ginagamit ang TouchableOpacity. onTextLayout ay nagbabalik ng impormasyon tungkol sa posisyon ng teksto pagkatapos ng rendering — kapaki-pakinabang para sa mga animation at pagpoposisyon.

Mga props ng platform

Sa iOS available ang disabled (nag-disable ng teksto), selectable (nagpapagana ng pagpili), dataDetectorTypes (awtomatikong pagkilala ng mga link, telepono, address). Sa Android available ang selectable (sa pamamagitan ng textSelectable), includeFontPadding (nag-aalis ng dagdag na espasyo).

Mga pagkakaiba ng Text sa mga elementong HTML p at span

Kahit na ang Text ay biswal na katulad ng mga HTML tag na p at span, ang mga pagkakaiba sa arkitektura ay makabuluhan. Sa React Native ay walang modelo ng DOM na may mga semantikong elemento ng teksto — lahat ng node ng teksto ay pinangangasiwaan sa pamamagitan ng iisang sangkap na Text na may iba't ibang props.

KatangianText (React Native)p / span (HTML)
NestingText sa loob ng Text — pamana ng estilop ay hindi maaaring maglaman ng p; span sa loob ng p
margin defaultWalang default na marginp ay may margin-block-start/end
Pagputol ng linyaAwtomatiko sa loob ng lalagyanp — block, span — inline
Suporta sa onPressBuilt-in na suportaNangangailangan ng karagdagang wrapper
Pamana ng estiloOo, mula sa magulang na TextOo, kaskada ng CSS

Ang pangunahing pagkakaiba — pamana ng mga estilo sa pamamagitan ng nesting ng Text. Kung ang panlabas na Text ay may fontSize: 18 at color: blue, lahat ng nested Text ay nagmamana ng mga estilong ito. Anumang prop ay maaaring i-override sa panloob na Text sa pamamagitan ng pagtatakda ng tiyak na halaga. Ito ay nakakatipid ng code at ginagawang mas malinis ang istraktura.

Pag-istilo ng teksto at mga font

Sinusuportahan ng Text ang karamihan sa mga katangian ng CSS para sa tipograpiya: fontFamily, fontSize, fontWeight, fontStyle, color, letterSpacing, lineHeight, textAlign, textDecorationLine, textTransform. Sa React Native, ang mga font ay ikinokonekta sa antas ng platform, hindi sa pamamagitan ng @font-face.

Pagkonekta ng mga custom na font

Upang gumamit ng mga custom na font, kailangan idagdag ang mga ito sa folder na assets/fonts at tukuyin sa react-native.config.js. Pagkatapos muling itayo ang app, ang font ay magiging available sa pamamagitan ng fontFamily. Hindi direktang sinusuportahan ng React Native ang mga web font (Google Fonts) — kinakailangan ang pag-download ng mga .ttf o .otf file.

Pamana at kaskada ng mga estilo

Ang mekanismo ng pamana sa Text ay naiiba sa CSS. Ang mga estilo ay ipinapasa lamang mula sa Text patungo sa nested Text, ngunit hindi mula sa View patungo sa Text. Kung kailangan magtakda ng font para sa buong app, ginagamit ang defaultProps ng sangkap na Text o isang custom na sangkap na wrapper.

js
<Text style={{ fontSize: 18, color: '#333' }}>
    This text is 18px and color #333
    <Text style={{ fontWeight: 'bold', color: '#007AFF' }}>
        bold and blue
    </Text>
    back to #333 color
</Text>

Sa halimbawang ito, ang panlabas na Text ay nagtatakda ng fontSize: 18 at color: #333. Ang panloob na Text ay nagmamana ng fontSize (18), ngunit ina-override ang fontWeight sa bold at color sa #007AFF. Ang panlabas na Text ay nagmamana lamang ng sarili nitong mga estilo. Ito ay eksaktong pagkakatulad ng paggana ng nested span sa HTML.

Mga praktikal na halimbawa gamit ang Text

Tingnan natin ang dalawang tipikal na senaryo ng paggamit ng Text sa React Native: pag-format ng teksto gamit ang nesting at paggawa ng naki-click na sangkap na may limitasyon ng linya.

Halimbawa 1: kard ng balita na may format

Sa halimbawang ito, ginagamit ang Text para sa pagpapakita ng multi-line na teksto na may naka-highlight na mga elemento: pamagat, petsa at nilalaman na may link.

js
const NewsCard = ({ title, date, content }) => (
    <View style={styles.card}>
        <Text style={styles.title}>{title}</Text>
        <Text style={styles.date}>{date}</Text>
        <Text style={styles.content}>
            {content}
            {' ' }
            <Text
                style={styles.link}
                onPress={() => Linking.openURL(url)}
            >
                Read more
            </Text>
        </Text>
    </View>
);

Sa estrukturang ito mayroong tatlong independiyenteng sangkap na Text (pamagat, petsa, nilalaman), bawat isa ay may kanya-kanyang estilo. Sa loob ng Text na may nilalaman ay may isa pang Text na may onPress para sa link. Ang pattern na ito ay ginagamit para sa mga news feed, blog at komento.

Halimbawa 2: teksto na may limitasyon ng linya

Para sa pagpapakita ng preview ng teksto na may elipsis, ginagamit ang numberOfLines. Ito ay isang karaniwang pattern para sa mga kard ng produkto at artikulo sa mga listahan.

js
<Text
    numberOfLines={2}
    ellipsizeMode="tail"
    style={styles.preview}
>
    {longDescription}
</Text>

Ang katangiang numberOfLines = 2 ay naglilimita ng teksto sa dalawang linya. Kung mas mahaba ang teksto, awtomatikong nagdaragdag ang React Native ng elipsis sa dulo ng ikalawang linya. Ang parameter na ellipsizeMode: 'tail' ay nagpapahiwatig na ang elipsis ay dapat nasa dulo (available din ang head, middle, clip).

Mga madalas itanong

Bakit walang mga tag na h1, p, span sa React Native?

Gumagamit ang React Native ng minimalist na set ng mga sangkap para sa cross-platform compatibility. Sa halip na maraming semantikong HTML tag, ginagamit ang isang Text na may iba't ibang estilo. Pinapasimple nito ang pag-render sa parehong platform mula sa isang codebase.

Maaari bang gamitin ang Text bilang buton?

Oo, sinusuportahan ng Text ang onPress at onLongPress para sa pagproseso ng mga pagpindot. Gayunpaman, para sa mga buton na may visual na feedback (pag-highlight ng pagpindot) mas mainam na gamitin ang TouchableOpacity o Pressable na may Text sa loob. Ang Text.onPress ay hindi nagbibigay ng visual na indikasyon ng pagpindot bilang default.

Bakit hindi pumuputol ang aking teksto?

Awtomatikong pumuputol ang Text ng mahahabang linya lamang sa loob ng lalagyan nito. Kung ang teksto ay hindi pumuputol, suriin: may limitasyon ba sa lapad ng magulang na View, hindi ba nakatakda ang nowrap sa mga estilo, at hindi ba lumalampas ang numberOfLines sa available na bilang ng mga linya.

Paano gumawa ng bold na teksto sa loob ng Text?

Gumamit ng nested Text na may fontWeight: 'bold' o balutin ang teksto sa isang sangkap na may ganitong estilo. Maaari ring ilapat ang fontWeight: '700' o '800' para sa mas makapal na istilo. Ang kapal ay nakadepende sa availability ng kaukulang pamilya ng font sa device.

Maaari bang maglaman ng larawan ang Text?

Hindi, ang Text ay maaari lamang maglaman ng iba pang mga sangkap na Text o mga string. Ang Image ay hindi maaaring maging anak ng Text. Para sa pagpapakita ng teksto na may mga icon, gumamit ng View na may Text at Image bilang katabing elemento o isang sangkap na sumusuporta sa pag-embed ng mga larawan.

Buod

  • Text — ang tanging sangkap ng React Native para sa pagpapakita ng teksto, pinapalitan ang p, span, h1-h6 mula sa web
  • Sinusuportahan ang nesting na may pamana ng estilo mula sa sangkap na Text na magulang
  • Mga pangunahing props: numberOfLines, ellipsizeMode, onPress, selectable, adjustsFontSizeToFit
  • Nagre-render ang Text sa native na UILabel (iOS) o TextView (Android)
  • Ang mga font ay ikinokonekta sa antas ng platform sa pamamagitan ng fontFamily sa StyleSheet
  • Ang mga estilo ng Text ay hindi namamana mula sa View — kinakailangan ang tahasang pagtatakda o defaultProps
  • Para sa mga naki-click na link, gumamit ng nested Text na may onPress, hindi TouchableOpacity

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din