Crie um Componente de Cartão de Perfil Reutilizável - Passo 10

Conte-nos o que está acontecendo:

Há VÁRIAS HORAS tentando resolver o mesmo erro, já testei TODAS as sintaxes possíveis, mas o validador insiste em mostrar:
“Você deve passar as props name, title e bio do objeto profile”
O que já fiz (sem sucesso):

Todas as variações de sintaxe do map() - arrow functions, funções tradicionais, retornos implícitos/explícitos

Com e sem a prop key
Com key={profile.id} e key={index}
Reset completo do desafio 5 vezes
Verificação minuciosa da digitação

Seu código até o momento

<!-- file: index.html -->
<!doctype html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Reusable Card component</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.development.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.development.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.26.3/babel.min.js"></script>
    <script
      data-plugins="transform-modules-umd"
      type="text/babel"
      src="index.jsx"
    ></script>
     <link rel="stylesheet" href="./styles.css" />
  </head>
  <body>
    <div id="root"></div>
    <script
      data-plugins="transform-modules-umd"
      type="text/babel"
      data-presets="react"
      data-type="module"
    >
      import { App } from './index.jsx';
      ReactDOM.createRoot(document.getElementById('root')).render(
        <App />
      );
    </script>
  </body>
</html>
/* file: styles.css */
:root {
  --dark-grey: #1b1b32;
  --light-grey: #f5f6f7;
  --dark-orange: #f89808;
}

body {
  background-color: var(--dark-grey);
}

.flex-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
}

.card {
  border: 5px solid var(--dark-orange);
  border-radius: 10px;
  width: 100%;
  padding: 20px;
  margin: 10px 0;
  background-color: var(--light-grey);
}

.card-title {
  border-bottom: 4px solid var(--dark-orange);
  width: fit-content;
}

@media (min-width: 768px) {
  .card {
    width: 300px;
  }
}
/* file: index.jsx */

{/* User Editable Region */}

export function Card({ name, title, bio }) {
  return (
    <div className="card">
      <h2>{name}</h2>
      <p className="card-title">{title}</p>
      <p>{bio}</p>
    </div>
  );
}

export function App() {
  const profiles = [
    {
      id: 1,        
      name: "Mark",
      title: "Frontend developer",
      bio: "I like to work with different frontend technologies and play video games."
    },
    {
      id: 2,
      name: "Tiffany",
      title: "Engineering manager",
      bio: "I have worked in tech for 15 years and love to help people grow in this industry."
    },
    {
      id: 3,
      name: "Doug",
      title: "Backend developer",
      bio: "I have been a software developer for over 20 years and I love working with Go and Rust."
    }
  ];

  return (
    <div className="flex-container">
      {profiles.map((profile) => (
        <Card
          key={profile.id}
          name={profile.name}
          title={profile.title}
          bio={profile.bio}
        />
      ))}
    </div>
  );
}

{/* User Editable Region */}

Informações do seu navegador:

Agente de usuário: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0

Informações do desafio:

Crie um Componente de Cartão de Perfil Reutilizável - Passo 10

Olá, @diegosrudi !
No passo 10 desse projeto, você deve renderizar um único card.
Eu testei aqui removendo os objetos 2 e 3 do seu array “profiles”; deixando apenas um objeto nele. Dessa forma, o código renderizou um card apenas.

Você vai precisar renderizar três cards no exercício seguinte, que é o passo 11.

O seu código para essa lição está tecnicamente correto. O problema é que o testador do FCC está sendo bem restrito e só aceita como correto quando há um card apenas no exercício 10.

Espero ter te ajudado :grinning_face: . Testa aí e me fala se deu certo.

1 Like

deu certo sim, obrigado!