Hoja de estilo
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Una StyleSheet es una abstracción similar a las hojas de estilo CSS.
Consejos para calidad de código:
-
Al mover los estilos fuera de la función render, facilitas la comprensión del código.
-
Nombrar los estilos ayuda a dar significado a componentes de bajo nivel en la función render y fomenta su reutilización.
-
En la mayoría de IDEs, usar
StyleSheet.create()ofrece comprobación de tipos estática y sugerencias para escribir estilos válidos.
Referencia
Métodos
compose()
static compose(style1: Object, style2: Object): Object | Object[];
Combina dos estilos donde style2 sobrescribe cualquier estilo en style1. Si alguno es falso, se devuelve el otro sin crear un array, ahorrando asignaciones y manteniendo igualdad referencial para comprobaciones de PureComponent.
create()
static create(styles: Object extends Record<string, ViewStyle | ImageStyle | TextStyle>): Object;
Función identidad para crear estilos. El principal beneficio práctico de crear estilos dentro de StyleSheet.create() es la comprobación de tipos estática contra propiedades de estilo nativas.
flatten()
static flatten(style: Array<Object extends Record<string, ViewStyle | ImageStyle | TextStyle>>): Object;
Consolida un array de objetos de estilo en un único objeto de estilo agregado.
setStyleAttributePreprocessor()
Probablemente habrá muchos cambios con rupturas de compatibilidad que no se anunciarán de manera confiable. Todo esto podría eliminarse, ¿quién sabe? Úsalo bajo tu propio riesgo.
static setStyleAttributePreprocessor(
property: string,
process: (propValue: any) => any,
);
Define una función para preprocesar valores de propiedades de estilo. Se usa internamente para procesar colores y transformaciones. No deberías usarlo a menos que sepas exactamente lo que haces y hayas agotado otras opciones.
Propiedades
absoluteFill
Patrón muy común para crear superposiciones con posición absoluta y valores cero (position: 'absolute', left: 0, right: 0, top: 0, bottom: 0). absoluteFill simplifica esto y reduce duplicación. Puedes usarlo para crear entradas personalizadas en una StyleSheet, ej.:
absoluteFillObject
A veces necesitas absoluteFill con pequeños ajustes - absoluteFillObject permite crear entradas personalizadas en una StyleSheet, ej.:
hairlineWidth
Define el ancho de una línea delgada en la plataforma. Útil como grosor de bordes o separadores. Ejemplo:
Esta constante siempre será un número entero de píxeles (para líneas nítidas) e intentará coincidir con el ancho estándar de línea fina en cada plataforma. Sin embargo, no asumas que tiene tamaño constante, pues su cálculo varía entre plataformas y densidades de pantalla.
Una línea con grosor hairline podría no ser visible si tu simulador tiene escala reducida.