react-native
Coiffant
Recherche…
Introduction
StyleSheet.create(StyleObject)
et être stocké dans une variable pour un accès en ligne plus court en utilisant un nom de sélecteur similaire à une classe. en CSS.
Syntaxe
-
<Component style={styleFromStyleSheet} />
-
<Component style={styleObject} />
-
<Component style={[style1,style2]} />
Remarques
La plupart des styles React Native sont leurs formulaires CSS, mais dans un cas camel. Ainsi, la text-decoration
devient textDecoration
.
Contrairement aux CSS, les styles ne sont pas hérités. Si vous souhaitez que les composants enfants héritent d'un certain style, vous devez le fournir explicitement à l'enfant. Cela signifie que vous ne pouvez pas définir une famille de polices pour une View
entière.
La seule exception à cette règle est le composant Text
: les Text
imbriqués héritent de leurs styles parents.
Style utilisant des styles en ligne
Chaque composant React Native peut prendre un accessoire de style
. Vous pouvez lui transmettre un objet JavaScript avec des propriétés de style CSS:
<Text style={{color:'red'}}>Red text</Text>
Cela peut être inefficace car il doit recréer l'objet chaque fois que le composant est rendu. Utiliser une feuille de style est préférable.
Styling à l'aide d'une feuille de style
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()
renvoie un objet dont les valeurs sont des nombres. React Native sait convertir ces identifiants numériques en objet de style correct.
Ajouter plusieurs styles
Vous pouvez passer un tableau au style
prop pour appliquer plusieurs styles. En cas de conflit, le dernier de la liste est prioritaire.
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 conditionnel
<View style={[(this.props.isTrue) ? styles.bgcolorBlack : styles.bgColorWhite]}>
Si la valeur de isTrue
est true
, la couleur de fond noire sera blanche.