1
resposta

Estou com problema para return do Topo No index.js do Produtor?

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMeu componete no index.js do Produtor:

import React from 'react';
import { useRoute } from '@react-navigation/native';
import useTextos from '../../hooks/useTextos';

import { FlatList, Text, View, Image, StyleSheet } from 'react-native';

import Cesta from './componentes/Cesta';
import Topo from '../../componentes/Topo';

import topo from '../../assets/produtores/topo.png';

export default function Produtor() {
  const route = useRoute();
  const { tituloProdutor, tituloCestas } = useTextos();
  const { nome, imagem, cestas } = route.params;

  const TopoLista = () => {
    return (
      <>
        <Topo titulo={tituloProdutor} imagem={topo} altura={150} />
        <View style={styles.conteudo}>
          <View style={styles.logo}>
            <Image source={imagem} style={styles.produtorImage} />
            <Text style={styles.produtor}>{nome}</Text>
          </View>

          <Text style={styles.cestas}>{tituloCestas}</Text>
        </View>
      </>
    );
  };

  return (
    <FlatList
      ListHeaderComponent={TopoLista}
      data={cestas}
      renderItem={({ item }) => <Cesta {...item} produtor={{ nome, imagem }} />}
      style={styles.lista}
    />
  );
}

const styles = StyleSheet.create({
  lista: {
    backgroundColor: '#ffffff',
  },
  conteudo: {
    paddingHorizontal: 16,
  },
  logo: {
    flexDirection: 'row',
  },
  produtorImage: {
    width: 62,
    height: 62,

    marginTop: -23,

    borderRadius: 6,
  },
  produtor: {
    color: '#464646',
    fontSize: 20,
    lineHeight: 32,
    fontWeight: 'bold',
    marginLeft: 16,
  },
  cestas: {
    color: '#464646',
    fontSize: 20,
    lineHeight: 32,
    fontWeight: 'bold',
    marginTop: 32,
  },
});

Meu componente Topo está assim:

import React from 'react';
import { useNavigation } from '@react-navigation/native';
import { Image, StyleSheet, Dimensions, TouchableOpacity } from 'react-native';

import Texto from './Texto';

import Gradiente from '../assets/gradiente.svg';
import topo from '../assets/topo.png';
import VoltarSVG from '../assets/voltar.svg';

const largura = Dimensions.get('screen').width;
const ALTURA_PADRAO = 270;

export default function Topo({
  titulo,
  imagem = topo,
  altura = ALTURA_PADRAO,
}) {
  const navigation = useNavigation();
  const estilos = funcaoEstilos(altura);
  return (
    <>
      <Image source={imagem} style={estilos.topo} />
      <Gradiente
        width={largura}
        height={(130 / 360) * largura}
        style={estilos.gradiente}
      />
      <Texto style={estilos.titulo}>{titulo}</Texto>
      <TouchableOpacity
        onPress={() => {
          navigation.goBack();
        }}
        style={estilos.botaoVoltar}>
        <VoltarSVG color="white" style={estilos.voltar} />
      </TouchableOpacity>
    </>
  );
}

const funcaoEstilos = altura =>
  StyleSheet.create({
    topo: {
      width: '100%',
      height: altura,
    },
    gradiente: {
      position: 'absolute',
    },
    titulo: {
      width: '100%',
      position: 'absolute',
      textAlign: 'center',
      fontSize: 16,
      lineHeight: 26,
      color: 'white',
      fontWeight: 'bold',
      padding: 16,
    },
    botaoVoltar: {
      position: 'absolute',
      padding: 17,
    },
    voltar: {
      width: 24,
      height: 24,
    },
  });

Meu repositório : https://github.com/MiguelASFerreira/rnnavegacao

1 resposta

Olá, Miguel! Tudo bem?

Pelo que entendi, você está com um problema relacionado ao retorno do componente Topo no arquivo index.js do Produtor, certo?

Ao analisar o código, percebi que o componente Topo está sendo importado corretamente no arquivo index.js do Produtor. No entanto, é importante verificar se a importação do componente Topo no arquivo index.js do Produtor está correta, ou seja, se o caminho do arquivo está correto e se o nome do componente está sendo importado corretamente.

Além disso, é importante verificar se o arquivo de imagem "topo.png" está localizado corretamente no diretório de assets.

Caso o problema persista, sugiro que você verifique se não há erros de digitação ou sintaxe no código do componente Topo. Verifique se todas as chaves e parênteses estão fechados corretamente e se não há nenhum caractere especial faltando.

Caso ainda não consiga resolver o problema, seria interessante compartilhar o erro específico que está ocorrendo ou alguma mensagem de erro que está sendo exibida, para que eu possa te ajudar de forma mais precisa.

Espero ter ajudado e bons estudos!