Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

94
Visualizações
Cómo configurar Collapse alternar diferente en cada elemento en la matriz asignada

tengo una matriz mapeada

 const numbers = [ {id : 1, number : 1}, {id : 2, number : 2}, {id : 3, number : 3}, {id : 4, number : 4}, ]

No es real, pero es similar a la matriz que tengo de la API como

 // state const [open, setOpen] = useState(false); numbers.map((number) => <Button key={number.toString()} onClick={() => setOpen(!open)} aria-controls="example-collapse-text" aria-expanded={open} > click </Button>

y al hacer clic vuelve

 <div style={{minHeight: '150px'}}> <Collapse in={open} dimension="width"> <div id="example-collapse-text"> <Card body style={{width: '400px'}}> Some text </Card> </div> </Collapse> </div>

Pero el problema es que está representando el Colapso en cada clic en todos los elementos de la matriz. ¿Cómo puedo hacer que sea único para cada elemento?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

está configurando un estado open para todo el collapse , por lo que al hacer clic en uno de los botones aparecen todos los componentes del colapso. tienes que implementar un estado abierto en cada colapso en sí mismo así:

 import { Button, Card, Collapse } from "@mui/material"; import { useState } from "react"; function Test() { let numbers = [1, 2, 3]; return numbers.map((number) => <MyCollapse number={number} />); } function MyCollapse({ number }) { const [open, setOpen] = useState(false); return ( <> <Button key={number.toString()} onClick={() => setOpen(!open)} aria-controls="example-collapse-text" aria-expanded={open} > click{" "} </Button> <div style={{ minHeight: "150px" }}> <Collapse in={open} dimension="width"> <div id="example-collapse-text"> <Card body style={{ width: "400px" }}> Some text </Card> </div> </Collapse> </div> </> ); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda