react-native
Messa in piega
Ricerca…
introduzione
StyleSheet.create(StyleObject)
e memorizzato in una variabile per l'accesso inline più breve utilizzando un nome di selettore simile a una classe in CSS.
Sintassi
-
<Component style={styleFromStyleSheet} />
-
<Component style={styleObject} />
-
<Component style={[style1,style2]} />
Osservazioni
La maggior parte degli stili React Native sono le loro forme CSS, ma nel caso cammello. Quindi, la text-decoration
diventa textDecoration
.
A differenza del CSS, gli stili non vengono ereditati. Se si desidera che i componenti figlio ereditino un determinato stile, è necessario fornirlo esplicitamente al figlio. Ciò significa che non è possibile impostare una famiglia di caratteri per un'intera View
.
L'unica eccezione è il componente Text
: i Text
nidificati ereditano i loro stili genitore.
Styling con stili in linea
Ogni componente React Native può assumere un puntello style
. Puoi passarlo un oggetto JavaScript con proprietà di stile in stile CSS:
<Text style={{color:'red'}}>Red text</Text>
Questo può essere inefficiente in quanto deve ricreare l'oggetto ogni volta che viene eseguito il rendering del componente. È preferibile l'uso di un foglio di stile.
Styling usando un foglio di stile
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()
restituisce un oggetto in cui i valori sono numeri. React Native sa convertire questi ID numerici nell'oggetto di stile corretto.
Aggiunta di più stili
È possibile passare un array al puntello di style
per applicare più stili. Quando c'è un conflitto, l'ultimo nella lista ha la precedenza.
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>
);
}
}
Styling condizionale
<View style={[(this.props.isTrue) ? styles.bgcolorBlack : styles.bgColorWhite]}>
Se il valore di isTrue
è true
, avrà un colore di sfondo nero altrimenti bianco.