Soy nuevo en React y entiendo los beneficios de los estilos en línea basados en componentes. Pero me pregunto si hay una forma decente de tener algún tipo de estilo global. Por ejemplo, me gustaría usar el mismo color de Texto y Botón en toda mi aplicación.
En lugar de repetir en cada componente (y posteriormente tener que cambiarlo en x lugares si es necesario), mi pensamiento inicial es crear una clase StyleSheet 'base' en su propio archivo e importarla en mis componentes.
¿Existe una forma mejor o más de 'Reaccionar'?
react-native
Patm
fuente
fuente
import { StyleSheet } from 'react-native';
style={defaultStyle}
agregarse. En su lugar, puede crear unDefaultView
y usarlo en lugar del proporcionadoview
que tiene el estilo de su especificación. Escribí una respuesta detallando este método hace un tiempo: stackoverflow.com/a/52429040/5243543Cree un archivo para sus estilos (IE,
Style.js
).Aquí hay un ejemplo:
En cualquiera de los archivos en los que desee utilizar su estilo, agregue lo siguiente:
fuente
Si solo desea establecer algunas variables globales, puede intentarlo.
AppStyles.js
index.ios.js
fuente
También puede probar react-native-extended-stylesheet que admite variables de estilo globales:
fuente
Debe crear un archivo para almacenar todo el estilo en él, como ' styles.js ' y escribir el código de tipo css que necesite
y ahora puede usar el estilo global como puede ver
fuente
Pruebe mi biblioteca react-native-style-tachyons , que no solo le brinda estilos globales, sino también un sistema de diseño receptivo que prioriza el diseño con anchos y alturas en relación con el tamaño de fuente raíz.
fuente
Todos estos métodos responden directamente a la pregunta, pero en lo que a mí respecta, no es la forma de hacerlo en un sistema de diseño basado en componentes como React.
Podemos comenzar con componentes atómicos, luego colocarlos en capas y agruparlos hasta la parte superior. El siguiente artículo podría aclarar esta línea de pensamiento: http://atomicdesign.bradfrost.com/chapter-2/
Si necesita un componente base que no existe, lo crea. Entonces puedes hacer otros componentes menos específicos con él. por ejemplo:
Luego use en
CustomText
todas partes en lugar deText
. También puede hacerlo conView
,div
,span
o cualquier otra cosa.fuente
<Text />
por<CustomText />
todas partes. Incluso puede importar texto personalizado como texto para que solo tenga que reemplazar la importación.Archivo CSS externo main.css
crear una instancia de archivo css en el componente.
fuente
Aquí puede encontrar una forma elegante de ordenar sus estilos y luego importarlos a los diferentes componentes, puede crear una carpeta en la que recopile todos los archivos de estilos y cree un index.js que funcionará como fachada:
el index.js se verá así:
y luego importar así:
Aquí para más información:
https://thoughtbot.com/blog/structure-for-styling-in-react-native
fuente
Eche un vistazo a Temas de Shoutem para React Native.
Esto es lo que obtienes con el tema Shoutem:
Estilo global donde cierto estilo se aplica automáticamente al componente por su nombre de estilo:
Activando cierto estilo de componente específico con
styleName
(como clase CSS):Herencia de estilo automática:
Estilo anidado para componentes compuestos:
Para que funcione, debe usar
StyleProvider
el componente contenedor que proporciona estilo a todos los demás componentes a través del contexto. Similar a ReduxStoreProvider
.También necesita conectar su componente al estilo
connectStyle
para que siempre use el componente conectado. Similar a Reduxconnect
.Puede ver un ejemplo en la documentación.
Una última cosa, también hemos proporcionado un conjunto de componentes en nuestro UI ToolKit que ya están conectados al estilo, por lo que puede importarlos y diseñar en su estilo / tema global.
fuente