Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida com a desconstrução do objeto, ao tentar usar TS

Estou tentando fazer o curso com TypeScript, mas estou tendo muita dificuldade na hora de passar o "mock" tentando remover a camada externa do objeto pra passar cada parametro separadamente. Alguém poderia me ajudar?

App.tsx:

import mock from './src/mocks/basket';
<Basket {...mock}/>

mocks/basket.tsx:

import logo from '../../assets/logo.png';

const mock : Object = {
    top:{
        title: 'Detalhes da Cesta de Verduras',
    },
    details: {
        name: 'Cesta de Verduras',
        farmLogo: logo,
        farmName: 'Jenny Jack Farm',
        description: 'Descrição aleatoria do texto aqui, pode imaginar qualquer coisa',
        price: 'R$ 40,00',
    }
}

export default mock;

screens/Basket/index.tsx:

interface Props{
    top: { title: string};
    details: {
        name: string,
        farmLogo: any,
        farmName: string,
        description: string,
        price: string,
    };
}

export default function Basket ({top, details} : Props) {
    return(
        <>
            <Top {...top}/>
            <View style={styles.basket}>
                <Details {...details}/>
            </View>

screens/Basket/components/Details.tsx:

interface Props{
name: string,
farmLogo: any,
farmName: string,
description: string,
price: string,
}
export default function Details({name, farmLogo, farmName, description, price} : Props){
return (
    <>
    <Texts style={styles.name}>{name}</Texts>
    <View style={styles.farm}>
        <Image source={farmLogo} style={styles.farmLogo}/>
        <Texts style={styles.farmName}>{farmName}</Texts>                    
    </View>
    <Texts style={styles.description}>{description}</Texts>
    <Texts style={styles.price}>{price}</Texts>
    </>
)
}
1 resposta
solução!

Oi Leonardo, tudo bem?

*Vi que você já finalizou o curso, que ótimo! *

Entendo que esteja tendo dificuldades na hora de passar o "mock" tentando remover a camada externa do objeto pra passar cada parametro separadamente. Uma sugestão é utilizar a desconstrução do objeto para passar cada parâmetro separadamente. No seu caso, você pode fazer o seguinte:

No arquivo App.tsx, em vez de passar o objeto inteiro, você pode desconstruí-lo e passar cada parâmetro separadamente, assim:

import mock from './src/mocks/basket';
const { top, details } = mock;
<Basket top={top} details={details} />

Dessa forma, você está passando cada parâmetro separadamente para o componente Basket.

Espero ter ajudado e bons estudos!