Text: wat is het, tekstweergave en React Native

Auteur: IT Sectr Gepubliceerd: 2026-07-05 Leestijd: 9 min

De Text component in React Native is de enige manier om tekst op het scherm weer te geven, in tegenstelling tot het web waar verschillende tags (p, span, h1-h6) worden gebruikt. Text ondersteunt nesting voor cascading overerving van stijlen, verwerking van aanraakgebeurtenissen en automatische regeleinden. Volgens React Native Docs, 2024 is Text de tweede meest gebruikte component na View. De component rendert naar native UILabel op iOS en TextView op Android, wat zorgt voor correct werkende lettertypen en toegankelijkheid.

Belangrijkste punten

  • Text is de enige React Native component voor tekstweergave
  • Ondersteunt nesting voor het stylen van afzonderlijke tekstgedeelten
  • Text erft stijlen van bovenliggende Text-componenten
  • Rendert naar UILabel op iOS en TextView op Android
  • Ondersteunt numberOfLines en adjustsFontSizeToFit voor weergavebeheer

Wat is Text in React Native

Text is een React Native component voor het weergeven van tekstuele inhoud. In tegenstelling tot webontwikkeling, waar talloze semantische tags voor tekst bestaan, worden in React Native alle tekstelementen via Text gemaakt. De component kan zowel eenvoudige tekst als complexe structuren met geneste Text en gestileerde fragmenten weergeven.

Text verwerkt automatisch regeleinden, beheert het lettertype, de grootte, kleur en uitlijning. De component ondersteunt aanraakgebeurtenissen (onPress), waarmee klikbare links kunnen worden gemaakt zonder extra wrappers. Een belangrijke beperking: Text kan niet rechtstreeks in View worden geplaatst — alleen in andere Text-componenten of als directe inhoud.

Volgens React Native Nested Text, 2024 erven geneste Text-componenten stijlen van de ouder. Dit maakt het mogelijk om een basisstijl op het bovenste niveau in te stellen en afzonderlijke eigenschappen voor specifieke fragmenten te overschrijven — vergelijkbaar met hoe span met CSS werkt in het web.

Eigenschappen en API van de Text component

De Text component biedt een reeks props voor het beheren van weergave, gedrag en toegankelijkheid. Belangrijke categorieën: stijlprops (lettertype, grootte, kleur, uitlijning), weergaveprops (numberOfLines, lineBreakMode) en interactieve (onPress, onLongPress).

Props voor tekstweergave

numberOfLines beperkt het aantal weergegeven regels en voegt aan het einde een weglatingsteken toe. ellipsizeMode bepaalt de positie van het weglatingsteken (head, middle, tail, clip). adjustsFontSizeToFit verkleint automatisch de lettergrootte zodat de tekst binnen de opgegeven grenzen past. lineBreakMode bepaalt hoe tekst buiten numberOfLines wordt afgekapt.

Interactieve props

Text ondersteunt onPress en onLongPress voor het verwerken van aanrakingen. Dit maakt het mogelijk om tekstlinks te maken zonder TouchableOpacity te gebruiken. onTextLayout geeft informatie over de positie van de tekst na het renderen — handig voor animaties en positionering.

Platform-specifieke props

Op iOS zijn disabled (tekst uitschakelen), selectable (selectie inschakelen), dataDetectorTypes (automatische herkenning van links, telefoons, adressen) beschikbaar. Op Android zijn selectable (via textSelectable), includeFontPadding (extra marges verwijderen) beschikbaar.

Verschillen tussen Text en HTML elementen p en span

Hoewel Text visueel lijkt op HTML-tags p en span, zijn de architecturale verschillen aanzienlijk. In React Native ontbreekt een DOM-model met semantische tekstelementen — alle tekstknooppunten worden beheerd via één enkele Text-component met verschillende props.

KenmerkText (React Native)p / span (HTML)
NestingText in Text — overerving van stijlenp kan geen p bevatten; span in p
Standaard marginGeen standaard margesp heeft margin-block-start/end
RegeleindenAutomatisch binnen containerp — block, span — inline
onPress ondersteuningIngebouwde ondersteuningVereist extra wrapper
Overerving van stijlenJa, van bovenliggende TextJa, CSS-cascade

Het belangrijkste verschil — overerving van stijlen via nesting van Text. Als de buitenste Text fontSize: 18 en color: blue heeft, erven alle geneste Text deze stijlen. Elke prop kan in de binnenste Text worden overschreven door een specifieke waarde in te stellen. Dit bespaart code en maakt de structuur schoner.

Tekstopmaak en lettertypen

Text ondersteunt de meeste CSS-eigenschappen voor typografie: fontFamily, fontSize, fontWeight, fontStyle, color, letterSpacing, lineHeight, textAlign, textDecorationLine, textTransform. In React Native worden lettertypen op platformniveau aangesloten, niet via @font-face.

Aansluiten van aangepaste lettertypen

Om aangepaste lettertypen te gebruiken, moeten ze aan de map assets/fonts worden toegevoegd en worden opgegeven in react-native.config.js. Na het herbouwen van de app wordt het lettertype beschikbaar via fontFamily. React Native ondersteunt web-lettertypen (Google Fonts) niet rechtstreeks — het downloaden van .ttf of .otf bestanden is vereist.

Overerving en cascade van stijlen

Het overervingsmechanisme in Text verschilt van CSS. Stijlen worden alleen doorgegeven van Text naar geneste Text, maar niet van View naar Text. Als een lettertype voor de hele app moet worden ingesteld, wordt defaultProps van de Text component of een aangepaste wrapper-component gebruikt.

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>

In dit voorbeeld stelt de buitenste Text fontSize: 18 en color: #333 in. De binnenste Text erft fontSize (18), maar overschrijft fontWeight naar bold en color naar #007AFF. De buitenste Text erft alleen zijn eigen stijlen. Dit is een exacte analogie van hoe geneste span in HTML werkt.

Praktische voorbeelden met Text

Laten we twee typische scenario's bekijken voor het gebruik van Text in React Native: het opmaken van tekst met nesting en het maken van een klikbare component met regelbeperking.

Voorbeeld 1: nieuwskaart met opmaak

In dit voorbeeld wordt Text gebruikt voor het weergeven van meerregelige tekst met gemarkeerde elementen: titel, datum en inhoud met 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>
);

In deze structuur zijn er drie onafhankelijke Text-componenten (titel, datum, inhoud), elk met hun eigen stijl. Binnen de Text met inhoud is nog een Text met onPress voor de link genest. Dit patroon wordt gebruikt voor nieuwsfeeds, blogs en reacties.

Voorbeeld 2: tekst met regelbeperking

Voor het weergeven van tekstvoorvertoning met weglatingsteken wordt numberOfLines gebruikt. Dit is een standaard patroon voor productkaarten en artikelen in lijsten.

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

De eigenschap numberOfLines = 2 beperkt de tekst tot twee regels. Als de tekst langer is, voegt React Native automatisch een weglatingsteken toe aan het einde van de tweede regel. De parameter ellipsizeMode: 'tail' geeft aan dat het weglatingsteken aan het einde moet staan (head, middle, clip zijn ook beschikbaar).

Veelgestelde vragen

Waarom zijn er geen h1, p, span tags in React Native?

React Native gebruikt een minimale set componenten voor cross-platform compatibiliteit. In plaats van meerdere semantische HTML-tags wordt één Text met verschillende stijlen gebruikt. Dit vereenvoudigt het renderen op beide platforms vanuit één codebase.

Kan Text als knop worden gebruikt?

Ja, Text ondersteunt onPress en onLongPress voor het verwerken van aanrakingen. Voor knoppen met visuele feedback (indrukken oplichten) is het echter beter om TouchableOpacity of Pressable met Text erin te gebruiken. Text.onPress biedt standaard geen visuele indicatie van indrukken.

Waarom wordt mijn tekst niet afgebroken?

Text breekt automatisch alleen lange regels af binnen de container. Als de tekst niet wordt afgebroken, controleer dan: of er een breedtebeperking is van de bovenliggende View, of nowrap niet is ingesteld in de stijlen, en of numberOfLines het beschikbare aantal regels niet overschrijdt.

Hoe maak ik vetgedrukte tekst binnen Text?

Gebruik geneste Text met fontWeight: 'bold' of wikkel de tekst in een component met deze stijl. Ook kan fontWeight: '700' of '800' worden toegepast voor een vettere weergave. De dikte hangt af van de beschikbaarheid van het bijbehorende lettertype op het apparaat.

Kan Text een afbeelding bevatten?

Nee, Text kan alleen andere Text-componenten of strings bevatten. Image kan geen onderliggend element van Text zijn. Gebruik voor tekst met pictogrammen View met Text en Image als aangrenzende elementen of een component die het inbedden van afbeeldingen ondersteunt.

Samenvatting

  • Text — de enige React Native component voor tekstweergave, vervangt p, span, h1-h6 van het web
  • Ondersteunt nesting met overerving van stijlen van de bovenliggende Text-component
  • Belangrijkste props: numberOfLines, ellipsizeMode, onPress, selectable, adjustsFontSizeToFit
  • Text rendert naar native UILabel (iOS) of TextView (Android)
  • Lettertypen worden op platformniveau aangesloten via fontFamily in StyleSheet
  • Text stijlen worden niet overgeërfd van View — expliciete instelling of defaultProps vereist
  • Voor klikbare links gebruikt u geneste Text met onPress, niet TouchableOpacity

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook