Vise tekst og utforme skrifter
Gjengi tekst med Text-komponenten, bruk stilene fontSize, fontWeight, color og lineHeight, og håndter innhold over flere linjer på en god måte.
Vise tekst og utforme skrifter er en gratis leksjon i React Native Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Native Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Native Academy inneholder totalt 4 leksjoner.
Det grunnleggende om Text-komponenten
I React Native ligger hvert ord i en Text-komponent. Løse tekststrenger utenfor en slik komponent fører til krasj – derfor pakker Text inn all teksten De viser.
import { View, Text } from 'react-native';
export default function Greeting() {
return (
<View>
<Text>Hello, World!</Text>
{/* This would cause an error: */}
{/* Hello, World! ← raw string outside Text */}
</View>
);
}fontSize og fontWeight
Endre tekststørrelsen med fontSize (et tall) og tykkelsen med fontWeight, for eksempel "bold" eller "600". Tilpassede skrifter har kanskje bare noen tykkelser, så test på en ekte enhet.
import { Text, View, StyleSheet } from 'react-native';
export default function Typography() {
return (
<View style={{ padding: 16 }}>
<Text style={styles.h1}>Heading 1</Text>
<Text style={styles.h2}>Heading 2</Text>
<Text style={styles.body}>Regular body text for paragraphs.</Text>
<Text style={styles.caption}>Small caption text</Text>
</View>
);
}
const styles = StyleSheet.create({
h1: { fontSize: 32, fontWeight: '700', color: '#111' },
h2: { fontSize: 24, fontWeight: '600', color: '#333' },
body: { fontSize: 16, fontWeight: '400', color: '#555', lineHeight: 24 },
caption: { fontSize: 12, fontWeight: '300', color: '#999' },
});color og lineHeight
Angi tekstens color med en heksadesimal verdi eller et navn, og bruk lineHeight til å lage avstand mellom linjene. Litt luft gjør lengre tekst mye enklere å lese.
import { Text, StyleSheet } from 'react-native';
export default function Article() {
return (
<Text style={styles.paragraph}>
React Native brings the best parts of mobile development
together, combining a smooth native experience with the
speed of JavaScript development.
</Text>
);
}
const styles = StyleSheet.create({
paragraph: {
fontSize: 16,
color: '#444',
lineHeight: 26, // 26/16 = 1.625× line height
letterSpacing: 0.2, // slight tracking for readability
},
});textAlign og tekstdekorasjon
Plasser teksten med textAlign (left, center, right), og pynt den med textDecorationLine for understreking eller textTransform for store bokstaver – akkurat som i CSS.
import { Text, View, StyleSheet } from 'react-native';
export default function TextStyling() {
return (
<View style={{ padding: 16 }}>
<Text style={styles.centered}>Centered heading</Text>
<Text style={styles.link}>Tap to visit website</Text>
<Text style={styles.strikethrough}>Old price: $29.99</Text>
<Text style={styles.uppercase}>sale ends tonight</Text>
</View>
);
}
const styles = StyleSheet.create({
centered: { textAlign: 'center', fontSize: 20, fontWeight: 'bold' },
link: { color: '#0066cc', textDecorationLine: 'underline' },
strikethrough: { textDecorationLine: 'line-through', color: '#999' },
uppercase: { textTransform: 'uppercase', letterSpacing: 2, fontSize: 14 },
});Nestede Text-komponenter for blandede stiler
Legg Text inni Text for å blande stiler på én linje, for eksempel ett enkelt ord med fet skrift. Den indre Text-en arver stilen fra forelderen og overstyrer bare det De angir.
import { Text, View } from 'react-native';
export default function MixedText() {
return (
<View style={{ padding: 16 }}>
<Text style={{ fontSize: 16, color: '#333' }}>
Welcome back,{' '}
<Text style={{ fontWeight: 'bold', color: '#0066cc' }}>
Alice
</Text>
! You have{' '}
<Text style={{ color: 'red', fontWeight: '600' }}>3</Text>
{' '}unread messages.
</Text>
</View>
);
}numberOfLines og ellipsizeMode
Bruk numberOfLines for å begrense hvor mange linjer som vises, og ellipsizeMode for å legge til "..." på slutten. Dette passer godt for listetitler som aldri skal brytes over ubegrenset mange linjer.
import { Text, View, StyleSheet } from 'react-native';
const longTitle = 'The Complete Guide to Building Production-Ready React Native Applications in 2024';
export default function TruncatedText() {
return (
<View style={{ padding: 16 }}>
<Text numberOfLines={1} ellipsizeMode='tail' style={styles.title}>
{longTitle}
</Text>
<Text numberOfLines={2} ellipsizeMode='tail' style={styles.body}>
{longTitle}
</Text>
</View>
);
}
const styles = StyleSheet.create({
title: { fontSize: 18, fontWeight: 'bold', marginBottom: 8 },
body: { fontSize: 14, color: '#666' },
});Laste inn tilpassede skrifter med expo-font
Vil De bruke Deres egen skrift? Legg en .ttf-fil i assets, og last den deretter inn med useFonts-hooken fra expo-font. Vent til den er klar, slik at De unngår et kort glimt av vanlig tekst.
import { useFonts } from 'expo-font';
import { Text, View } from 'react-native';
export default function App() {
const [fontsLoaded] = useFonts({
'Poppins-Regular': require('./assets/fonts/Poppins-Regular.ttf'),
'Poppins-Bold': require('./assets/fonts/Poppins-Bold.ttf'),
});
if (!fontsLoaded) return null; // Show splash or null while loading
return (
<View style={{ padding: 24 }}>
<Text style={{ fontFamily: 'Poppins-Bold', fontSize: 24 }}>
Custom Font Heading
</Text>
<Text style={{ fontFamily: 'Poppins-Regular', fontSize: 16 }}>
Body text with Poppins Regular.
</Text>
</View>
);
}Google Fonts med @expo-google-fonts
Enda enklere: Pakkene @expo-google-fonts inneholder Google-skrifter for Dem. Installer én pakke, importer hooken og bruk navnet på skriften – ingen manuelle filer er nødvendige.
import { useFonts, Inter_400Regular, Inter_700Bold } from '@expo-google-fonts/inter';
import { Text, View } from 'react-native';
export default function App() {
const [fontsLoaded] = useFonts({
Inter_400Regular,
Inter_700Bold,
});
if (!fontsLoaded) return null;
return (
<View style={{ padding: 24 }}>
<Text style={{ fontFamily: 'Inter_700Bold', fontSize: 24 }}>
Inter Bold
</Text>
<Text style={{ fontFamily: 'Inter_400Regular', fontSize: 16 }}>
Inter Regular body text.
</Text>
</View>
);
}Markerbar tekst og onPress
Som standard kan Text ikke kopieres. Legg til prop-en selectable for å tillate det, eller en onPress-handler for å få et ord til å fungere som en trykkbar lenke.
import { Text, View, Alert } from 'react-native';
export default function InteractiveText() {
return (
<View style={{ padding: 16 }}>
{/* Selectable text (user can copy) */}
<Text selectable style={{ fontSize: 14, color: '#333', marginBottom: 16 }}>
Long-press to select and copy this text.
</Text>
{/* Tappable text link */}
<Text
style={{ color: '#0066cc', fontSize: 16 }}
onPress={() => Alert.alert('Link tapped!')}
accessibilityRole='link'
>
Terms and Conditions
</Text>
</View>
);
}Håndtere tekst over flere linjer og langt innhold
Text brytes automatisk når plassen tar slutt. Inne i en flex-rad kan De legge til flexShrink: 1, slik at en lang linje krymper i stedet for å skyve innhold utenfor skjermen.
import { Text, View, StyleSheet, ScrollView } from 'react-native';
export default function Article() {
return (
<ScrollView contentContainerStyle={{ padding: 16 }}>
<View style={styles.row}>
<Text style={styles.label}>Title:</Text>
{/* flexShrink prevents overflowing the row */}
<Text style={styles.value} numberOfLines={1}>
A Very Long Article Title That Would Otherwise Overflow
</Text>
</View>
</ScrollView>
);
}
const styles = StyleSheet.create({
row: { flexDirection: 'row', alignItems: 'center', gap: 8 },
label: { fontWeight: 'bold', color: '#333' },
value: { flexShrink: 1, color: '#666' },
});Tilgjengelighet for Text: accessibilityLabel
For brukere av skjermlesere bør De legge til en accessibilityLabel i Text når innholdet ikke forklarer seg selv. Det hjelper VoiceOver og TalkBack med å beskrive appen tydelig.
import { Text, View, TouchableOpacity } from 'react-native';
export default function AccessibleText() {
return (
<View>
{/* Screen reader will say: 'Alice, 5 unread messages' */}
<View accessible accessibilityLabel='Alice, 5 unread messages'>
<Text style={{ fontWeight: 'bold' }}>Alice</Text>
<Text style={{ color: 'red' }}>5</Text>
</View>
<TouchableOpacity
accessibilityLabel='Delete account'
accessibilityHint='Double tap to permanently delete your account'
>
<Text style={{ color: 'red' }}>Delete</Text>
</TouchableOpacity>
</View>
);
}Rask sjekk
Rask sjekk! Fest det De har lært om Text og skrifter. ✨
Oppsummering av leksjonen
Flott jobbet! All tekst ligger i Text, fontSize og color former den, og expo-font gjør det enkelt å bruke tilpassede skrifttyper. Neste tema er å vise bilder.
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Vise tekst og utforme skrifter» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien React Native Academy, inkludert «Vise tekst og utforme skrifter», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i React Native Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Vise tekst og utforme skrifter»?
Gjengi tekst med Text-komponenten, bruk stilene fontSize, fontWeight, color og lineHeight, og håndter innhold over flere linjer på en god måte. Du øver på React Native Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med React Native Academy?
Ingen tidligere erfaring er nødvendig. React Native Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Vise tekst og utforme skrifter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne React Native Academy-leksjonen?
Ja. Alle React Native Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- View-komponenten som beholder
- Vise tekst og utforme skrifter
- Vise bilder fra lokale og eksterne kilder
- Sette sammen et enkelt profilkort