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

[Reclamação] ndex.js:12 Uncaught TypeError: Cannot read properties of undefined (reading 'id') at onClick (index.js:12:1)

Tá complicado! TODA AULA UM ERRO DIFERENTE! Toda vez estou tendo que recorrer ao chatgpt para fazer mudanças no código, mas dessa vez nem ele me ajudou. E isso atrapalha demais o aprendizado e o entendimento do conteúdo que ja não está fácil.

vamos lá...

quando cliclo no "x" do icone a mensagem que aparece é essse erro: ndex.js:12 Uncaught TypeError: Cannot read properties of undefined (reading 'id') at onClick (index.js:12:1)

o código ta aqui: https://github.com/luckfer7/organo

3 respostas
solução!

Fala Lucas, tranquilidade? Fica frio, rodei seu código aqui e acredito que tenha achado o erro. Às vezes pode ser frustrante quando tentamos resolver um problema, faz parte de qualquer dia a dia de dev. Bora pra possível solução.

1 - Na linha 40 desse seu arquivo, acrescente a prop colaborador no componente Colaborador conforme sinalizado no trecho do código abaixo:

index.js do componente Time

const Time = ({ nome, id, cor, colaboradores, aoDeletar, mudarCor }) => {
    const css = { backgroundColor: hexToRgba(cor, '0.6')};
    
  
    return (
      colaboradores.length > 0 && (
        <section className="time" style={css}>
          <input onChange={evento => mudarCor(id, evento.target.value)} value={cor} type="color" className="input-cor" />
          <h3 style={{ borderColor: cor }}>{nome}</h3>
          <div className="colaboradores">
            {colaboradores.map(colaborador => (
              <Colaborador
                key={colaborador.nome}
                corDeFundo={cor}
                nome={colaborador.nome}
                cargo={colaborador.cargo}
                imagem={colaborador.imagem}
                aoDeletar={aoDeletar}
/* --------->*/ colaborador={colaborador} //
              />
            ))}
          </div>
        </section>
      )
    );
  };

2 - Com isso, seu componente Colaborador que teoricamente deveria receber uma prop colaborador do componente pai (Time), agora recebe de fato:

index.js do componente Colaborador

const Colaborador = ({
  nome,
  imagem,
  cargo,
  corDeFundo,
  aoDeletar,
  colaborador, /*<----- Agora seu componente Colaborador 
                        recebe de fato a prop do Time*/
}) => {
  return (
  // código omitido...

3 - O erro era ocasionado ao executar a função aoDeletar no clique do X, pois tentava acessar o colaborador.id na linha 12, colaborador esse com valor undefined, já que não recebia do componente pai via props.

index.js do componente Colaborador

const Colaborador = ({nome, imagem, cargo, corDeFundo, aoDeletar, colaborador, }) => {
    return (
        //um bloco com imagem e cor de fundo e outro bloco com as informações, dentro de um bloco principal.
        
        <div className='colaborador'>
            <AiFillCloseCircle 
                size={25} 
                className="deletar" //
 // --------->  onClick={() => aoDeletar(colaborador.id)}
 
               // código omitido...

Modifica lá a prop e me dá um retorno!

Estou acompanhando o tópico para saber se o erro foi sanado ou se precisar de mais algum esclarecimento!

Abraço e bons estudos!

Deu certo! Muito obrigado!

Por nada! Sucesso nos estudos!