Sou novo no React e entendo os benefícios dos estilos inline baseados em componentes. Mas estou me perguntando se existe uma maneira decente de ter algum tipo de estilo global. Por exemplo, eu gostaria de usar a mesma coloração de texto e botão em todo o meu aplicativo.
Em vez de repetir em cada componente (e subsequentemente ter que alterá-lo em x lugares se necessário), meu pensamento inicial é criar uma classe StyleSheet 'base' em seu próprio arquivo e importá-la em meus componentes.
Existe uma maneira melhor ou mais 'Reagir'?
react-native
Patm
fonte
fonte
import { StyleSheet } from 'react-native';
style={defaultStyle}
ser adicionado. Em vez disso, você pode criar umDefaultView
e usá-lo em vez do fornecido comview
o estilo de sua especificação. Escrevi uma resposta detalhando esse método há algum tempo: stackoverflow.com/a/52429040/5243543Crie um arquivo para seus estilos (IE,
Style.js
).Aqui está um exemplo:
Em qualquer um dos arquivos que você deseja usar seu estilo, adicione o seguinte:
fonte
Se você apenas deseja definir algumas variáveis globais, você pode tentar.
AppStyles.js
index.ios.js
fonte
Você também pode tentar react-native-extended-stylesheet que suporta variáveis de estilo globais:
fonte
Você deve criar um arquivo para armazenar todos os estilos nele, como ' styles.js ' e escrever o código do tipo css conforme necessário
e agora você pode usar o estilo global, como pode ver
fonte
Tente minha biblioteca react-native-style-tachyons , que não só fornece estilos globais, mas um sistema de layout responsivo e com design inicial com larguras e alturas em relação ao tamanho da fonte de sua raiz.
fonte
Todos esses métodos respondem diretamente à pergunta, mas no que me diz respeito, não é a maneira de fazer isso em um sistema de design baseado em componentes como o React.
Podemos começar com componentes atômicos, em seguida, colocá-los em camadas e agrupá-los até o topo. O artigo a seguir pode tornar essa linha de pensamento mais clara: http://atomicdesign.bradfrost.com/chapter-2/
Se você precisa de um componente básico que não existe, você o cria. Então você pode fazer outros componentes menos específicos com ele. por exemplo:
Em seguida, use em
CustomText
qualquer lugar em vez deText
. Você também pode fazê-lo comView
,div
,span
ou qualquer outra coisa.fonte
<Text />
em<CustomText />
qualquer lugar. Você pode até importar CustomText como Texto, de modo que só precisa substituir a importação.Arquivo CSS externo main.css
crie uma instância do arquivo css no componente.
fonte
Aqui você pode encontrar uma maneira elegante de classificar seus estilos e, em seguida, importar para os diferentes componentes, você pode criar uma pasta na qual reúne todos os arquivos de estilos e cria um index.js que funcionará como fachada:
o index.js será semelhante a:
e importe assim:
Aqui para mais informações:
https://thoughtbot.com/blog/structure-for-styling-in-react-native
fonte
Dê uma olhada em Temas Shoutem para React Native.
Aqui está o que você obtém com o tema Shoutem:
Estilo global em que determinado estilo é aplicado automaticamente ao componente por seu nome de estilo:
Ativando certo estilo específico de componente com
styleName
(como classe CSS):Herança automática de estilo:
Estilo aninhado para componentes compostos:
Para fazê-lo funcionar, você precisa usar
StyleProvider
o componente wrapper que fornece estilo a todos os outros componentes por meio do contexto. Semelhante ao ReduxStoreProvider
.Além disso, você precisa conectar seu componente ao estilo
connectStyle
para sempre usar o componente conectado. Semelhante ao Reduxconnect
.Você pode ver um exemplo na documentação.
Uma última coisa, nós também fornecemos um conjunto de componentes em nosso UI ToolKit que já estão conectados ao estilo, então você pode apenas importá-los e estilo em seu estilo / tema global.
fonte