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

156
Visualizações
¿Cómo expandir solo un div fuera de un mapa?

Estoy tratando de mapear a través de una API y hacer que cada uno de sus objetos tenga datos expandibles. Sin embargo, cuando expando un div para un objeto, en lugar de expandir solo ese div en particular, expande todos mis objetos. ¿Cómo lo hice para que solo amplíe los datos de un objeto? Aquí está mi código:

 export default function StudentsList({ students }) { const [isCollapsed, setIsCollapsed] = useState(true); const handleCollapse = () => { setIsCollapsed((prev) => !prev); }; return ( <div className={studentsBox}> {students.map((student) => ( <div className={card} key={student.id}> <div className={plus} onClick={handleCollapse} > {isCollapsed ? '+' : '-'} </div> <div className={isCollapsed ? collapse : ''}> <p>Test 1: &nbsp;&nbsp; {student.grades[0]}%</p> <p>Test 2: &nbsp;&nbsp; {student.grades[1]}%</p> <p>Test 3: &nbsp;&nbsp; {student.grades[2]}%</p> <p>Test 4: &nbsp;&nbsp; {student.grades[3]}%</p> <p>Test 5: &nbsp;&nbsp; {student.grades[4]}%</p> <p>Test 6: &nbsp;&nbsp; {student.grades[5]}%</p> <p>Test 7: &nbsp;&nbsp; {student.grades[6]}%</p> <p>Test 8: &nbsp;&nbsp; {student.grades[7]}%</p> </div> </div> </div> ))} ); }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

puedes hacer algo como esto

 export default function StudentsList({ students }) { const [collapsed, setCollapsed] = useState(null); const handleCollapse = (id) => { setCollapsed(prev => prev === id? null : id); }; return ( <div className={studentsBox}> {students.map((student) => ( <div className={card} key={student.id}> <div className={plus} onClick={() => handleCollapse(student.id)} onMouseMove={() => setId(`${student.id}`)} > {collapsed === student.id ? '+' : '-'} </div> <div className={collapsed === student.id ? collapse : ''}> <p>Test 1: &nbsp;&nbsp; {student.grades[0]}%</p> <p>Test 2: &nbsp;&nbsp; {student.grades[1]}%</p> <p>Test 3: &nbsp;&nbsp; {student.grades[2]}%</p> <p>Test 4: &nbsp;&nbsp; {student.grades[3]}%</p> <p>Test 5: &nbsp;&nbsp; {student.grades[4]}%</p> <p>Test 6: &nbsp;&nbsp; {student.grades[5]}%</p> <p>Test 7: &nbsp;&nbsp; {student.grades[6]}%</p> <p>Test 8: &nbsp;&nbsp; {student.grades[7]}%</p> </div> </div> </div> ))} ); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Primero declaras el ID seleccionado

 const [selectedId, setSelectedId] = useState(null);

Luego configure onClick para establecerSelectedId

 onClick={()=>setSelectedId(student.id)}

De esta manera, puede cambiar la base className en el ID seleccionado

 <div className={student.id !== selectedId ? collapse : ''}> <p>Test 1: &nbsp;&nbsp; {student.grades[0]}%</p> <p>Test 2: &nbsp;&nbsp; {student.grades[1]}%</p> .... </div>
about 4 years ago · Juan Pablo Isaza Relatório

0

La belleza de React es hacer uso de muchos componentes. Use componentes adicionales para agregar algo de estructura a su presentación de sus datos.

  • StudentList (muestra una lista de...)
    • Student (que, a su vez, muestra una lista de...)
      • StudentGrade

Cada estudiante puede colapsarse fácilmente independientemente de la lista de estudiantes.

 function StudentGrade({ grade, index }) { return <p>Test {index}: &nbsp;&nbsp; {grade}</p> } function Student({ student }) { const [isCollapsed, setIsCollapsed] = React.useState(true); const handleCollapse = () => { setIsCollapsed((prev) => !prev); }; return ( <div> <div onClick={handleCollapse}> {isCollapsed ? '-' : '+'} <span>{student.name}</span> </div> {!isCollapsed?null:( <div> {student.grades.map((grade, index) => ( <StudentGrade key={index} grade={grade} index={index}/> ))} </div> )} </div> ) } function StudentsList({ students }) { return ( <div> {students.map((student) => ( <Student key={student.id} student={student} /> ))} </div> ); } const students = [ { id: 1, name: 'Ann', grades: ['A', 'B'] }, { id: 2, name: 'Bob', grades: ['B', 'C'] }, { id: 3, name: 'Charlie', grades: ['C', 'D'] }, ] ReactDOM.render(<StudentsList students={students} />, document.getElementById('root'));
 <script src="https://unpkg.com/react@16.7.0-alpha.0/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16.7.0-alpha.0/umd/react-dom.development.js"></script> </script> <div id="root"></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