Disculpas. Novato aquí que tiene problemas para pasar un objeto JSON a una función como accesorios. Obviamente estoy haciendo algo mal, pero he buscado y las publicaciones de otras personas parecen más complejas que las mías.
Quiero pasar una matriz que puede tener cero o más filas a una función y luego quiero contar cuántas filas hay. Finalmente devolvería una cadena dependiendo de eso. Tengo la última parte funcionando, pero no puedo pasar la matriz sin quedar indefinida.
Aplicación.js
const sampleTeams = [ { team: "Jets", season: "2022/23", regfee: 35, feepaid: true, }, ]; function App() { return ( <Container className="my-4"> <MemberCard forename="Bob" surname="Jones" playerNumber="154" registrations={sampleTeams} ></MemberCard> </Container> ); }MemberCard.js
export default function MemberCard({ forename, surname, memberNumber, registrations, }) { return ( <Card> <Card.Body> <Card.Title className="d-flex justify-content-between slign-items-baseline fw-normal mb-3"> <div className="me-2"> {forename} {surname} </div> <div className="d-flex align-items-baseline text-muted fs-6 ms-1"> {memberNumber} </div> </Card.Title> <p>{getNumberOfTeams({ registrations })} registered</p> <Stack direction="horizontal" gap="2" className="mt-4"> <Button variant="outline-primary" className="ms-auto"> Register Team </Button> </Stack> </Card.Body> </Card> ); } function getNumberOfTeams(registrations) { const numberOfTeams = registrations.length; // console.log(numberOfTeams); if (numberOfTeams === 1) return "1 team"; return numberOfTeams + " teams"; }En su código de ejemplo, existe la abreviatura de objeto en el argumento de la llamada a getNumberOfTeams
getNumberOfTeams({ registrations }) La función getNumberOfTeams(registrations) intenta leer registrations.length , pero le pasó un objeto { registrations: registrations } . Object.length siempre será undefined . Su código debería funcionar más correctamente si lo cambia a
<p>{getNumberOfTeams(registrations)} registered</p>