react-native
Stylizacja
Szukaj…
Wprowadzenie
StyleSheet.create(StyleObject)
i może być przechowywany w zmiennej w celu uzyskania krótszego dostępu inline za pomocą nazwy selektora podobnej do klasy w CSS.
Składnia
-
<Component style={styleFromStyleSheet} />
-
<Component style={styleObject} />
-
<Component style={[style1,style2]} />
Uwagi
Większość stylów React Native to ich formy CSS, ale w przypadku wielbłądów. Więc text-decoration
staje textDecoration
.
W przeciwieństwie do CSS style nie są dziedziczone. Jeśli chcesz, aby komponenty potomne dziedziczyły określony styl, musisz jawnie podać go dziecku. Oznacza to, że nie można ustawić rodziny czcionek dla całego View
.
Jedynym wyjątkiem jest składnik Text
: Text
zagnieżdżony dziedziczy ich style nadrzędne.
Stylizacja przy użyciu stylów wbudowanych
Każdy komponent React Native może przyjmować rekwizyty style
. Możesz przekazać obiekt JavaScript z właściwościami stylu CSS:
<Text style={{color:'red'}}>Red text</Text>
Może to być nieefektywne, ponieważ musi odtwarzać obiekt przy każdym renderowaniu komponentu. Preferowane jest używanie arkusza stylów.
Stylizacja za pomocą arkusza stylów
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()
zwraca obiekt, w którym wartościami są liczby. React Native wie, jak przekonwertować te numeryczne identyfikatory na właściwy obiekt stylu.
Dodawanie wielu stylów
Możesz przekazać tablicę do prop style
aby zastosować wiele stylów. W przypadku konfliktu pierwszeństwo ma ostatni z listy.
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>
);
}
}
Styl warunkowy
<View style={[(this.props.isTrue) ? styles.bgcolorBlack : styles.bgColorWhite]}>
Jeśli wartość isTrue
ma wartość true
wówczas będzie miała czarny kolor tła, w przeciwnym razie biały.