Progression
0 %
0/32 étapes terminées
Fondamental · 7 min de lecture
View et Text
Les deux briques de toute interface
1Définition
View est le conteneur universel de React Native : il structure, espace et décore. Text est le composant dédié à l'affichage du texte, le seul capable d'en contenir.
2Principes fondamentaux
01
View devient une vue native
Sur iOS, une View est une UIView ; sur Android, une android.view.View. Elle ne fait rien d'autre qu'occuper de l'espace et accueillir des enfants.
02
Tout texte passe par Text
Une chaîne ou un nombre placé directement dans une View provoque une erreur. Le texte a besoin des capacités de mise en page typographique de Text.
03
Text peut contenir du Text
Imbriquer des Text permet de styliser une partie d'une phrase. Les Text imbriqués héritent du style de leur parent, seule exception à l'absence de cascade.
04
Chaque View est un conteneur flex
Aucune déclaration n'est nécessaire : une View organise ses enfants en colonne par défaut.
3Exemples pratiques
Mettre un mot en valeur
1import { View, Text } from 'react-native';2 3export default function App() {4 return (5 <View style={{ flex: 1, justifyContent: 'center', padding: 28 }}>6 <Text style={{ fontSize: 24, lineHeight: 34 }}>7 Tu as gagné <Text style={{ fontWeight: '800', color: '#ee6900' }}>120 XP</Text> aujourd'hui.8 </Text>9 </View>10 );11}Le Text imbriqué hérite de la taille de police de son parent et ajoute seulement la graisse et la couleur.
Limiter un texte à deux lignes
1import { View, Text } from 'react-native';2 3export default function App() {4 return (5 <View style={{ flex: 1, justifyContent: 'center', padding: 28 }}>6 <Text numberOfLines={2} style={{ fontSize: 18 }}>7 React Native permet de construire des applications mobiles natives avec React, en partageant l'essentiel du code entre iOS et Android, tout en gardant une expérience fluide.8 </Text>9 </View>10 );11}numberOfLines coupe proprement le texte et ajoute des points de suspension.
4Erreurs courantes
Du texte nu dans une View
À éviter
<View>Bonjour</View>À faire
<View> <Text>Bonjour</Text></View>Pourquoi : Sur téléphone, c'est un crash immédiat : « Text strings must be rendered within a <Text> component ».
Attendre l'héritage du style d'une View
À éviter
<View style={{ color: 'red' }}> <Text>Alerte</Text></View>À faire
<View> <Text style={{ color: 'red' }}>Alerte</Text></View>Pourquoi : Une View ne transmet pas de style typographique à ses enfants : la couleur doit être posée sur le Text.
Une condition qui affiche 0
À éviter
<View> {messages.length && <Text>Nouveaux messages</Text>}</View>À faire
<View> {messages.length > 0 && <Text>Nouveaux messages</Text>}</View>Pourquoi : Si la longueur vaut 0, l'expression vaut 0… qui se retrouve affiché hors d'un Text : erreur.
5Subtilités à connaître
- ◆Sur Android, un Text a un léger espace intérieur de police :
includeFontPadding: falsele supprime pour un alignement vertical précis. - ◆
selectablepermet à l'utilisateur de copier le texte, désactivé par défaut. - ◆
allowFontScaling(activé par défaut) respecte la taille de texte choisie dans les réglages d'accessibilité : garde-le, et teste avec de grandes polices. - ◆Une View sans taille ni enfants mesure 0 × 0 : c'est souvent la raison d'un fond « invisible ».
6Vérifie ta compréhension
Question 1/3
Score 0
Quel composant peut contenir une chaîne de caractères ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.