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

260
Visualizações
¿Cómo ordenar y representar la tabla en ReactJs correctamente?

Ayuda, gente :) Hice la misma función (función de clasificación) en JS puro, pero después de clasificar, rendericé la tabla cada vez, es decir, creé una nueva con datos ordenados, pero no entiendo cómo implementarlo en React .

¿Cómo recreo exactamente el cuerpo de la tabla cada vez que hago algo con los datos?

 import tableData from './data'; import React, { useEffect, useState } from 'react'; import './App.css'; function App() { let [data, setData] = useState(tableData); let clickOnPrice = false; const sortByPrice = () => { let sorted = data; if(!clickOnPrice) { sorted.sort((a, b) => parseInt(a.price.replace(/ /g, '')) - parseInt(b.price.replace(/ /g, ''))); clickOnPrice = true; }else { sorted.sort((a, b) => parseInt(b.price.replace(/ /g, '')) - parseInt(a.price.replace(/ /g, ''))); clickOnPrice = false; } } return ( <div className='App'> <table> <thead> <tr> <th>№</th> <th>Название</th> <th><button className='price_btn' onClick={() => sortByPrice()}>Цена<span className="icons descending_icon">&nbsp;↑</span></button></th> <th><button className='price_btn'>Количество</button></th> <th>В рассрочку</th> </tr> </thead> <tbody> {data.map((item, index) => ( <tr key={index}> <td>{index + 1}</td> <td>{item.name}</td> <td>{item.price}</td> <td>{item.count}</td> <td>{(item.instalment) ? '✅' : ''}</td> </tr> ))} </tbody> </table> </div> ); } export default App;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe usar la variable de estado de data para almacenar datos ordenados como:

 const sortByPrice = () => { setData(data.sort((a, b) => parseInt(a.price.replace(/ /g, '')) - parseInt(b.price.replace(/ /g, '')))); }

Ni siquiera necesita la variable llamada clickOnPrice si desea ordenar los datos solo de una manera (ya sea desc o asc).

Además, reemplaza

 <th><button className='price_btn' onClick={() => sortByPrice()}>Цена<span className="icons descending_icon">&nbsp;↑</span></button></th>

con

 <th><button className='price_btn' onClick={sortByPrice}>Цена<span className="icons descending_icon">&nbsp;↑</span></button></th>
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