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!