Props in React Native
Props in React Native
~9 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Props ("properties") sind der einzige Weg, wie eine Elternkomponente Daten an eine Kindkomponente weitergibt – sie funktionieren in React Native GENAUSO wie in React für das Web, hier aber am Beispiel typischer nativer Anwendungsfälle vertieft.
1. Beschreibung
Props sind schreibgeschützt (READ-ONLY) aus Sicht der empfangenden Komponente – sie werden nie direkt verändert, sondern nur über neue Werte aus der Elternkomponente ersetzt. Neben einfachen Werten können auch FUNKTIONEN als Props übergeben werden ("Callback-Props"), womit Kinder Ereignisse nach oben melden können.
2. Kurzes Beispiel
function Begruessung({ name, farbe = 'black' }) {
return <Text style={{ color: farbe }}>Hallo, {name}!</Text>;
}
<Begruessung name="Anna" farbe="blue" />3. Komplettes Projekt: Wiederverwendbare Bewertungskarte
npx create-expo-app props-demo
cd props-demoimport { View, Text, StyleSheet } from 'react-native';
// children: Text/Elemente, die zwischen den öffnenden/schließenden Tags stehen
// onDetails: Callback-Prop - eine Funktion, die die Karte selbst nicht kennt, nur aufruft
function BewertungsKarte({ titel, sterne = 0, children, onDetails }) {
return (
<View style={styles.karte}>
<Text style={styles.titel}>{titel}</Text>
<Text style={styles.sterne}>{'★'.repeat(sterne)}{'☆'.repeat(5 - sterne)}</Text>
{children}
{onDetails && (
<Text style={styles.link} onPress={onDetails}>
Details anzeigen
</Text>
)}
</View>
);
}
const styles = StyleSheet.create({
karte: { backgroundColor: '#f3f4f6', padding: 16, borderRadius: 10, marginBottom: 12 },
titel: { fontSize: 16, fontWeight: 'bold' },
sterne: { color: '#f59e0b', marginVertical: 4 },
link: { color: '#2563eb', marginTop: 8 },
});
export default BewertungsKarte;import { View, Text, Alert, StyleSheet } from 'react-native';
import BewertungsKarte from './components/BewertungsKarte';
export default function App() {
return (
<View style={styles.container}>
<BewertungsKarte
titel="Wanderschuhe"
sterne={4}
onDetails={() => Alert.alert('Details', 'Weitere Infos zu den Wanderschuhen.')}
>
<Text style={styles.text}>Bequem auf langen Touren.</Text>
</BewertungsKarte>
<BewertungsKarte titel="Regenjacke" sterne={5}>
<Text style={styles.text}>Wasserdicht bis 10.000mm.</Text>
</BewertungsKarte>
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, paddingTop: 60, paddingHorizontal: 16 },
text: { color: '#374151' },
});4. Erklärung
sterne = 0im Destrukturierungs-Muster der Funktionsparameter – ein DEFAULT-Wert für Props, die der Aufrufer weglassen darf.childrenist eine SPEZIELLE, automatisch befüllte Prop – alles, was zwischen<BewertungsKarte>...</BewertungsKarte>steht, landet hier, ohne dass es explizit alschildren={{...}}übergeben werden muss.onDetailsist eine CALLBACK-Prop – die Karte selbst weiß nichts überAlert.alert(), sie ruft nur die übergebene Funktion auf; das macht die Komponente wiederverwendbar für JEDE Art von "Details"-Aktion.- Zweite Karte übergibt kein
onDetails– der Link wird dank{{onDetails && (...)}}dann automatisch NICHT gerendert, statt einen Fehler zu werfen.