Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Cards não aparecem

Os cards não aparecem depois de ser tirado aquela parte manual do código, tentei prosseguir com a aula para ver se achava o erro, mas ainda não achei e desde o inicio não funcionou, também não marca erro no console.

Arquivo App

import { useState } from 'react';
import Banner from './componentes/banner/banner';
import Formulario from './componentes/formulario';
import Time from './componentes/Time';

function App() {

  const times = [
    {
      nome: 'Front-End',
      corPrimaria: '#82CFFA',
      corSecundaria: '#E8F8FF',
    },
    {
        nome: 'Data Science',
        corPrimaria: '#A6D157',
        corSecundaria: '#F0F8E2',
    },
    {
        nome: 'Devops',
        corPrimaria: '#E06B69',
        corSecundaria: '#FDE7E8'
    },
    {
        nome: 'UX e Design',
        corPrimaria: '#D86EBF',
        corSecundaria: '#FFF5D4',
    },
    {
        nome: 'Mobile',
        corPrimaria: '#FEBA05',
        corSecundaria: '#FFF5D9',
    },
    {
        nome: 'Inovação e Gestão',
        corPrimaria: '#FF8A29',
        corSecundaria: '#FFEEDF',
    }
  ]

  const [colaboradores, setColaboradores] = useState([])

  const aoNovoColaboradorAdicionado = (colaborador) => {
    console.log(colaborador)
    setColaboradores([...colaboradores, colaborador])
  }

  return (
    <div className='App'>
      <Banner />
      <Formulario times={times.map(time => time.nome)} aoColaboradorCadastrado= {colaborador => aoNovoColaboradorAdicionado(colaborador)}/>
      {times.map(time => <Time 
      key={time.nome} 
      nome={time.nome} 
      corPrimaria={time.corPrimaria} 
      corSecundaria={time.corSecundaria} 
      colaboradores={colaboradores}
      />)}
    </div>
  );
}

export default App;

Arquivo Colaborador

import './Colaborador.css'

const Colaborador = ({nome, imagem, cargo}) => {
    return (
        <div className='colaborador'>
            <div className='cabecalho'>
                <img src={imagem} alt={nome} />
            </div>
            <div className='rodape'>
                <h4>{nome}</h4>
                <h5>{cargo}</h5>
            </div>
        </div>

    )
}

export default Colaborador

Arquivo Time

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

const Time = (props) => {

    const background = { backgroundColor: props.corSecundaria }

    return (
        <section className='time' style={background}>
            <h3 style={{ borderColor: props.corPrimaria }}>{props.nome}</h3>
            {props.colaboradores.map(colaborador => <Colaborador nome={colaborador.nome} cargo={colaborador.cargo} imagem={colaborador.imagem} />)}
        </section>
    )
}

export default Time
7 respostas

Olá, Ana.

Tudo bem?

Eu acho que o erro está no import, tem letra minúscula onde era pra ser maiúscula, veja:

O seu está assim:

import { useState } from 'react';
import Banner from './componentes/banner/banner';
import Formulario from './componentes/formulario';
import Time from './componentes/Time';

Acho que tem que ficar assim:

import { useState } from 'react';
import Banner from './componentes/Banner';
import Formulario from './componentes/Formulario';
import Time from './componentes/Time';

Espero ter ajudado.

Qualquer dúvida manda aqui.

Olá, Renan, meus nomes de pastas/arquivos estão desse jeito mesmo. Teria que ser maiusculo obrigatoriamente? Porque esses imports dessa forma não tinham dado problema até agora.

Arrumei os nomes dos arquivos, e ainda não mostra erro no console, criei um arquivo no github dos componentes para ficar mais fácil de mostrar os códigos:

https://github.com/ananazario/organoReact

Oi, Ana!

Olhando seu código, me parece que faltou um detalhe no componente Formulario:

    const aoSalvar = (evento) => {
        evento.preventDefault()
        console.log('Form foi submetido => ', nome, cargo, imagem)
    }

Ao invés de fazer o console.log, temos de chamar a função que recebemos via props:

    const aoSalvar = (evento) => {
        evento.preventDefault()
        props.aoColaboradorCadastrado({
            nome,
            cargo,
            imagem,
            time
        })
    }

Consegue ajustar e testar? Depois conta pra gente se deu certo :)

Deu certo, mas para o front-end não atualiza, não funciona a criação de cards (para os outros, todos funcionaram). Mas já agradeço a ajuda! https://github.com/ananazario/organoReact.git

solução!

Acho que o que você quis dizer, Ana, é que não consegue adicionar colaboradores ao time de frontend. Certo?

Experimenta trocar para uma escola qualquer, depois voltar para o frontend e vê se funciona.

Se isso der certo, temos uma pista :)

Sim, é isso mesmo que acontece.