react-native
Styling
Suche…
Einführung
StyleSheet.create(StyleObject)
und für einen kürzeren Inline-Zugriff in einer Variablen gespeichert werden, indem ein Selektorname für eine Klasse verwendet wird in CSS.
Syntax
-
<Component style={styleFromStyleSheet} />
-
<Component style={styleObject} />
-
<Component style={[style1,style2]} />
Bemerkungen
Die meisten React Native-Stile sind ihre CSS-Formen, jedoch im Kamelfall. Also, text-decoration
wird textDecoration
.
Im Gegensatz zu CSS werden Stile nicht vererbt. Wenn Sie möchten, dass untergeordnete Komponenten einen bestimmten Stil erben, müssen Sie ihn explizit dem untergeordneten Element zur Verfügung stellen. Das bedeutet, dass Sie keine Schriftfamilie für eine gesamte View
festlegen können.
Die einzige Ausnahme ist die Text
: Verschachtelte Text
erben ihre übergeordneten Stile.
Styling mit Inline-Styles
Jede Reaktion Mutterkomponente kann eine nehmen style
prop. Sie können ein JavaScript-Objekt mit CSS-Style-Eigenschaften übergeben:
<Text style={{color:'red'}}>Red text</Text>
Dies kann ineffizient sein, da das Objekt jedes Mal neu erstellt werden muss, wenn die Komponente gerendert wird. Die Verwendung eines Stylesheets wird bevorzugt.
Styling mit einem Stylesheet
import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
red: {
color: 'red'
},
big: {
fontSize: 30
}
});
class Example extends Component {
render() {
return (
<View>
<Text style={styles.red}>Red</Text>
<Text style={styles.big}>Big</Text>
</View>
);
}
}
StyleSheet.create()
gibt ein Objekt zurück, bei dem die Werte Zahlen sind. React Native kann diese numerischen IDs in das richtige Stilobjekt konvertieren.
Mehrere Stile hinzufügen
Sie können ein Array an den Pass - style
prop auf mehrere Arten gelten. Wenn ein Konflikt vorliegt, hat der letzte in der Liste Vorrang.
import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
red: {
color: 'red'
},
greenUnderline: {
color: 'green',
textDecoration: 'underline'
},
big: {
fontSize: 30
}
});
class Example extends Component {
render() {
return (
<View>
<Text style={[styles.red, styles.big]}>Big red</Text>
<Text style={[styles.red, styles.greenUnderline]}>Green underline</Text>
<Text style={[styles.greenUnderline, styles.red]}>Red underline</Text>
<Text style={[styles.greenUnderline, styles.red, styles.big]}>Big red underline</Text>
<Text style={[styles.big, {color:'yellow'}]}>Big yellow</Text>
</View>
);
}
}
Bedingtes Styling
<View style={[(this.props.isTrue) ? styles.bgcolorBlack : styles.bgColorWhite]}>
Wenn der Wert von isTrue
true
ist true
hat er einen schwarzen Hintergrund, ansonsten weiß.