Text: ce que c'est, l'affichage de texte et React Native

Auteur : IT Sectr Publié le : 2026-07-05 Temps de lecture : 9 min

Le composant Text dans React Native est le seul moyen d'afficher du texte à l'écran, contrairement au web où différentes balises (p, span, h1-h6) sont utilisées. Text prend en charge l'imbrication pour l'héritage en cascade des styles, la gestion des événements tactiles et le retour à la ligne automatique. Selon React Native Docs, 2024, Text est le deuxième composant le plus utilisé après View. Le composant est rendu en UILabel natif sur iOS et TextView sur Android, garantissant le bon fonctionnement des polices et de l'accessibilité.

Points Clés

  • Text est le seul composant React Native pour afficher du texte
  • Prend en charge l'imbrication pour styliser des parties individuelles du texte
  • Text hérite des styles des composants Text parents
  • Se rend sous forme de UILabel sur iOS et TextView sur Android
  • Prend en charge numberOfLines et adjustsFontSizeToFit pour le contrôle d'affichage

Qu'est-ce que Text dans React Native

Text est un composant React Native pour afficher du contenu textuel. Contrairement au développement web, où il existe de nombreuses balises sémantiques pour le texte, dans React Native tous les éléments de texte sont créés via Text. Le composant peut afficher à la fois du texte simple et des structures complexes avec du Text imbriqué et des fragments stylisés.

Text gère automatiquement le retour à la ligne, gère la famille de polices, la taille, la couleur et l'alignement. Le composant prend en charge les événements tactiles (onPress), permettant de créer des liens cliquables sans wrappers supplémentaires. Une limitation importante : Text ne peut pas être imbriqué directement dans View — seulement dans d'autres composants Text ou en tant qu'enfants directs.

Selon React Native Nested Text, 2024, les composants Text imbriqués héritent des styles du parent. Cela permet de définir un style de base au niveau supérieur et de remplacer des propriétés individuelles pour des fragments spécifiques — similaire au fonctionnement de span avec CSS sur le web.

Propriétés et API du composant Text

Le composant Text fournit un ensemble de props pour contrôler l'affichage, le comportement et l'accessibilité. Catégories principales : props de style (police, taille, couleur, alignement), props d'affichage (numberOfLines, lineBreakMode) et props interactives (onPress, onLongPress).

Props d'affichage du texte

numberOfLines limite le nombre de lignes affichées, en ajoutant des points de suspension à la fin. ellipsizeMode contrôle la position des points de suspension (head, middle, tail, clip). adjustsFontSizeToFit réduit automatiquement la taille de la police pour adapter le texte dans les limites définies. lineBreakMode détermine comment le texte est tronqué au-delà de numberOfLines.

Props interactives

Text prend en charge onPress et onLongPress pour gérer les touches. Cela permet de créer des liens textuels sans utiliser TouchableOpacity. onTextLayout retourne des informations sur la disposition du texte après le rendu — utile pour les animations et le positionnement.

Props spécifiques à la plateforme

Sur iOS, disabled (désactive le texte), selectable (active la sélection) et dataDetectorTypes (détection automatique des liens, téléphones, adresses) sont disponibles. Sur Android, selectable (via textSelectable) et includeFontPadding (supprime les espacements supplémentaires) sont disponibles.

Différences entre Text et les éléments p et span de HTML

Bien que Text ressemble visuellement aux balises HTML p et span, les différences architecturales sont significatives. React Native ne possède pas de modèle DOM avec des éléments de texte sémantiques — tous les nœuds de texte sont traités via un seul composant Text avec diverses props.

CaractéristiqueText (React Native)p / span (HTML)
ImbricationText dans Text — héritage de stylesp ne peut pas contenir p ; span dans p
Marge par défautPas de marges par défautp a margin-block-start/end
Retour à la ligneAutomatique dans le conteneurp — bloc, span — en ligne
Gestion d'onPressSupport intégréNécessite un wrapper supplémentaire
Héritage de stylesOui, du Text parentOui, cascade CSS

La différence clé est l'héritage de styles via l'imbrication de Text. Si un Text externe a fontSize: 18 et color: blue, tous les composants Text imbriqués héritent de ces styles. Toute propriété peut être remplacée dans le Text interne en définissant une valeur spécifique. Cela économise du code et rend la structure plus propre.

Stylisation du texte et polices

Text prend en charge la plupart des propriétés CSS pour la typographie : fontFamily, fontSize, fontWeight, fontStyle, color, letterSpacing, lineHeight, textAlign, textDecorationLine, textTransform. Dans React Native, les polices sont connectées au niveau de la plateforme, et non via @font-face.

Utilisation de polices personnalisées

Pour utiliser des polices personnalisées, elles doivent être ajoutées au dossier assets/fonts et spécifiées dans react-native.config.js. Après la reconstruction de l'application, la police devient disponible via fontFamily. React Native ne prend pas en charge les polices web (Google Fonts) directement — il faut télécharger des fichiers .ttf ou .otf.

Héritage et cascade de styles

Le mécanisme d'héritage dans Text diffère de CSS. Les styles sont transmis uniquement de Text à Text imbriqué, mais pas de View à Text. Pour définir une police pour toute l'application, utilisez les defaultProps du composant Text ou un composant wrapper personnalisé.

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>

Dans cet exemple, le Text externe définit fontSize: 18 et color: #333. Le Text interne hérite de fontSize (18), mais remplace fontWeight par bold et color par #007AFF. Le Text externe hérite uniquement de ses propres styles. C'est une analogie exacte du fonctionnement de span imbriqué en HTML.

Exemples pratiques avec Text

Examinons deux cas d'utilisation typiques de Text dans React Native : le formatage de texte avec imbrication et la création d'un composant cliquable avec limite de lignes.

Exemple 1 : carte d'actualité avec formatage

Dans cet exemple, Text est utilisé pour afficher du texte multiligne avec des éléments mis en évidence : titre, date et contenu avec un lien.

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>
);

Cette structure comporte trois composants Text indépendants (titre, date, contenu), chacun avec son propre style. À l'intérieur du Text de contenu, un autre Text avec onPress est imbriqué pour le lien. Ce modèle est utilisé pour les flux d'actualités, les blogs et les commentaires.

Exemple 2 : texte avec limite de lignes

Pour afficher des aperçus de texte avec des points de suspension, numberOfLines est utilisé. C'est un modèle standard pour les fiches produits et les listes d'articles.

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

La propriété numberOfLines = 2 limite le texte à deux lignes. Si le texte est plus long, React Native ajoute automatiquement des points de suspension à la fin de la deuxième ligne. Le paramètre ellipsizeMode: 'tail' spécifie que les points de suspension doivent être à la fin (head, middle et clip sont également disponibles).

Foire aux questions

Pourquoi React Native n'a-t-il pas de balises h1, p, span ?

React Native utilise un ensemble minimal de composants pour la compatibilité multiplateforme. Au lieu de plusieurs balises HTML sémantiques, un seul Text avec différents styles est utilisé. Cela simplifie le rendu sur les deux plateformes à partir d'une seule base de code.

Peut-on utiliser Text comme un bouton ?

Oui, Text prend en charge onPress et onLongPress pour gérer les touches. Cependant, pour les boutons avec retour visuel (mise en évidence de la pression), il est préférable d'utiliser TouchableOpacity ou Pressable avec Text à l'intérieur. Text.onPress ne fournit pas d'indication visuelle de pression par défaut.

Pourquoi mon texte ne se retourne-t-il pas ?

Text effectue automatiquement le retour à la ligne uniquement pour les lignes longues dans son conteneur. Si le texte ne se retourne pas, vérifiez : si le View parent a une restriction de largeur, si nowrap est défini dans les styles, et si numberOfLines ne dépasse pas le nombre de lignes disponible.

Comment mettre du texte en gras dans Text ?

Utilisez un Text imbriqué avec fontWeight: 'bold' ou encapsulez le texte dans un composant avec ce style. Vous pouvez également utiliser fontWeight: '700' ou '800' pour un aspect plus gras. L'épaisseur dépend de la disponibilité de la famille de polices correspondante sur l'appareil.

Text peut-il contenir une image ?

Non, Text ne peut contenir que d'autres composants Text ou des chaînes. Image ne peut pas être un enfant de Text. Pour afficher du texte avec des icônes, utilisez View avec Text et Image comme éléments frères ou un composant avec support d'images intégrées.

Résumé

  • Text est le seul composant React Native pour afficher du texte, remplaçant p, span, h1-h6 du web
  • Prend en charge l'imbrication avec héritage de styles du composant Text parent
  • Props clés : numberOfLines, ellipsizeMode, onPress, selectable, adjustsFontSizeToFit
  • Text se rend sous forme de UILabel natif (iOS) ou TextView (Android)
  • Les polices sont connectées au niveau de la plateforme via fontFamily dans StyleSheet
  • Les styles Text ne sont pas hérités de View — une affectation explicite ou des defaultProps sont nécessaires
  • Pour les liens cliquables, utilisez un Text imbriqué avec onPress, pas TouchableOpacity

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi