5
respostas

Códigos diferentes

Olá,

Estou fazendo a formação: Explore o React com o JavaScript.

Fiz o curso React: desenvolvendo com o JavaScript, e agora iniciei o curso React: como os componentes funcionam.

Este, por sua vez, faz continuidade do projeto Organo do curso anterior, porém percebi na aula (criando aoDeletar), que os códigos são diferentes, como também que o curso anterior foi atualizado e o atual não.

Assim, não sei se é possível usar o projeto do Organo do curso anterior, sendo assim, estou na dúvida como proceder?

Vou deixar aqui uma parte do código para comparação:

  • curso React: desenvolvendo com o JavaScript

    src>componentes>time>index.js

import Colaborador from '../Colaborador' import './Time.css'

const Time = (props) => { const css = { backgroundColor: props.corSecundaria }

return (
    (props.colaboradores.length > 0) ? <section className='time' style={css}>
        <h3 style={{ borderColor: props.corPrimaria }}>{props.nome}</h3>
        <div className='colaboradores'>
            {props.colaboradores.map( colaborador => <Colaborador corDeFundo={props.corPrimaria} key={colaborador.nome} nome={colaborador.nome} cargo={colaborador.cargo} imagem={colaborador.imagem}/>)}
        </div>
    </section>
    : ''
)

}

export default Time

  • React: como os componentes funcionam

    src>componentes>time>index.js

import Colaborador from '../Colaborador' import './time.css'

const Time = ({ time, colaboradores }) => { return (

    colaboradores.length > 0 && <section className='time' style={{ backgroundImage: 'url(/imagens/fundo.png)', backgroundColor: time.corPrimaria }}>
        <h3 style={{ borderColor: time.corSecundaria }}>{time.nome}</h3>
        <div className='colaboradores'>
            {colaboradores.map((colaborador, indice) => <Colaborador key={indice} colaborador={colaborador} corDeFundo={time.corSecundaria} />)}
        </div>
    </section>

)

}

export default Time

5 respostas

Olá Joab.

Tudo bem?

Compreendo sua dúvida. E acredito que posso te ajudar a entender melhor a situação.

Em ambos os códigos, estamos criando um componente chamado "Time". A diferença principal está na forma como as propriedades são passadas para o componente.

No primeiro código, as propriedades são acessadas através de um objeto chamado "props". Por exemplo, para acessar a propriedade "corSecundaria", usamos "props.corSecundaria".

No segundo código, as propriedades são desestruturadas diretamente na assinatura da função. Isso significa que em vez de ter um objeto "props" e acessar cada propriedade individualmente, as propriedades "time" e "colaboradores" são extraídas diretamente. Portanto, em vez de "props.time" e "props.colaboradores", temos apenas "time" e "colaboradores". Isso é uma característica do JavaScript chamada desestruturação.

Outra diferença é que no segundo código, a propriedade "corDeFundo" é passada para o componente "Colaborador" como "time.corSecundaria", enquanto no primeiro código, é passada como "props.corPrimaria". Isso pode ser devido a uma mudança na lógica do programa, ou pode ser um erro.

No entanto, a estrutura geral do componente é a mesma. Ambos retornam um elemento "section" se a lista de colaboradores não estiver vazia, e ambos mapeiam a lista de colaboradores para criar um componente "Colaborador" para cada um.

Se o curso não foi atualizado para refletir as mudanças no código, você pode tentar seguir o curso com o código antigo. Se você encontrar problemas, pode ser útil atualizar o código para corresponder ao curso atualizado.

  • Eu vou passar o seu feedback para a equipe de conteúdo para eles analisarem. Valeu.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Olá Renan,

Estou usando o código atualizado e tentando seguir o curso com as adaptações necessárias para o "props".

Até certo ponto estou conseguindo o resultado esperado, mas existem muitas diferenças e o curso precisa ser atualizado.

Eu acho até interessante o desafio, mas em compensação levo muito mais tempo que deveria.

Agradeço a ajuda e o feedback.

Olá, novamente.

Verdade, faz muito sentido, porque acaba tendo que revisar mais partes no projeto. Muito obrigado pelo retorno.

Olá,

Consegui finalizar o projeto, com as devidas adaptações e modificações. Levei mais tempo que previ, mas creio que tenha sido gratificante.

Seguem os links:

GitHub: https://github.com/JoabOliveira/organo Vercel: https://organo-jb-gray-seven.vercel.app/

Desde já agradeço!

Oi Joab novamente.

Muito obrigado por voltar aqui compartilhar o seu projeto com a gente.

Muito bom mesmo! O fato de tentar e conseguir fazer, independentemente se é com prop ou com a desestruturação. Isso mostra que você está de fato se dedicando e evoluindo. Ficou top. Parabéns :)

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.