1
resposta

[Bug] Minhas fontes não carregam

eu baixei as fontes pelo comando que a prof falou o expo install expo-font @expo-google-fonts depois ele deu um erro falando da versão do cli, ai depois eu fiz oq ele pediu, coloquei na pasta do projeto e ai dei esse comando acima e ele instalou, depois fiz os codigos como a prof disse, mas o resultado não saiu como esperado App.js

import { StatusBar, SafeAreaView, View} from 'react-native';
import React from  'react'
import Cesta from './src/telas/cesta';

import {
  useFonts, 
  Montserrat_400Regular, 
  Montserrat_700Bold 
} from '@expo-google-fonts/montserrat'

export default function App() {

  const [fonteCarregada] =  useFonts ({
    "FonteNormal": Montserrat_400Regular,
    "FonteNegrito": Montserrat_700Bold
  });

  if(!fonteCarregada) {
    <View/>
  }
  return (  
    <SafeAreaView>
      <StatusBar />
      <Cesta/>
    </SafeAreaView>
  );
}

Index.js (cesta)

import React from 'react'
import {StyleSheet, Image, Dimensions, Text, View} from 'react-native'
import topo from '../../assets/topo.png'
import logo from '../../assets/logo.png'
const width = Dimensions.get('screen').width

export default function Cesta() {
   return <>
      <Image source={topo} style = {estilos.topo} />
      <Text style= {estilos.titulo}> Detalhes da Cesta</Text>
      <View style={estilos.cesta}>
         <Text style = {estilos.nome}>Cesta de Verduras</Text>
         <View style = {estilos.fazenda}>
            <Image style= {estilos.logo} source={logo}></Image>
            <Text style = {estilos.nomeFazenda}>Jenny Jack Farm</Text>
         </View>
         <Text style = {estilos.descricao}>
            Uma cesta com produtos selecionados
            cuidadosamente diretamente 
            para sua cozinha
         </Text>
         <Text style = {estilos.preco}>R$ 40,00</Text>
      </View>
   </> 

}

const estilos = StyleSheet.create({
   topo: {
      width: "100%",
      height: 578 / 769 * width,
   },
   titulo: {
      width: "100%",
      position: 'absolute',
      textAlign: 'center',
      fontSize: 16, 
      lineHeight: 26,
      color: "white",
      fontWeight: "bold",
      padding: 16,

   },
   cesta: {
      paddingVertical: 8,
      paddingHorizontal: 16,
   },
   nome: {
      fontSize: 26,
      lineHeight: 42,
      color: "#464646",
      fontWeight: "Bold",
      fontFamily: "FonteNegrito"

   },
   nomeFazenda: {
      fontSize: 16,
      lineHeight: 26,
      marginLeft: 12,
      fontFamily:'FonteNormal'
   },
   fazenda: {
      flexDirection: "row",
      paddingVertical: 12
   },
   logo: {
      width: 32,
      height: 32, 
   },
   descricao: {
      color: "#A3A3A3",
      fontSize: 16,
      lineHeight: 26
   },
   preco: {
      color: "#2A9f85",
      fontWeight: "bold",
      fontSize: 26,
      lineHeight: 42,
      marginTop: 8
   },
 })

sobre o index da Cesta, vcs não acham que ele está muito grande e com muitas responsabilidades? o ideal seria criar componentes menores e importar nele pelo que eu lembro, só que as fontes não carregaram app não carrega as fontes

1 resposta

Olá, Israel!

Pelo que pude observar no seu código, você está utilizando as fontes Montserrat_400Regular e Montserrat_700Bold no seu aplicativo React Native. No entanto, as fontes não estão sendo carregadas corretamente.

Uma possível solução para esse problema é verificar se você instalou corretamente as dependências necessárias. Além do comando expo install expo-font @expo-google-fonts, é importante também executar o comando expo install @expo-google-fonts/montserrat para instalar as fontes Montserrat.

Outro ponto que vale a pena verificar é se você está importando as fontes corretamente no seu arquivo App.js. Certifique-se de que o caminho do import está correto e que as fontes estão sendo importadas corretamente.

Além disso, é importante verificar se as fontes estão sendo utilizadas corretamente nos estilos do seu aplicativo. No seu arquivo Index.js, por exemplo, você está utilizando as fontes nos estilos nome e nomeFazenda. Verifique se esses estilos estão sendo aplicados corretamente nos elementos correspondentes.

Quanto à sua observação sobre o tamanho e responsabilidades do arquivo Index.js, você está correto em pensar em dividir o código em componentes menores. Essa prática é conhecida como "componentização" e ajuda a tornar o código mais organizado e fácil de dar manutenção. Você pode criar componentes separados para o topo, a cesta e outros elementos do seu aplicativo, importando-os no arquivo Index.js. Dessa forma, cada componente terá sua própria responsabilidade e o código ficará mais modular.

Espero ter ajudado a resolver o problema das fontes e também a dar uma sugestão para melhorar a organização do seu código. Se tiver mais alguma dúvida, é só me perguntar. Bons estudos!