Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
Eliminar fila de una tabla, deleteRow(id), remove() o use useState() en Reactjs

Tengo un componente con una tabla que se carga con los datos que envia la API REST, mi duda mas que nada, es si es bueno borrar una fila con remove() o deleteRow(index) entrando al DOM o tengo que manipular el DOM a través de un estado (useState) para una buena práctica o algo así.

Información adicional: me he acostumbrado a manipular el DOM directamente con javascript puro al crear páginas web estáticas, pero en React creo que tienes que usar accesorios, estado, ganchos para manipular los elementos del DOM o ¿me equivoco? Debe haber casos, supongo.

ATRAVESANDO DOM

 export default function App() { const data = ['Eli','Smith', 'Jhon'] const handleDelete = (index,e) => { //I can save an ID in <tr> through datasets (data-) //to get it by traversing the DOM when the user clicks and delete it //also in my database (API), that's Ok? e.target.parentNode.parentNode.parentNode.deleteRow(index) } const rows = data.map((item, index) => { return ( <tr key={index}> <td>{item}</td> <td><button onClick={e => handleDelete(index,e)}>Delete</button></td> </tr> ) }) return ( <div className="App"> <h1>Hello CodeSandbox</h1> <table> {rows} </table> </div> ); }

Está bien ?

¿O tengo que poner las filas en un estado (useState) y actualizarlo eliminando y volviendo a renderizar?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La mejor práctica es administrar datos a través del estado, sugeriría no hacer la manipulación DOM manualmente

 export default function App() { const [data, setData] = useState(['Eli','Smith', 'Jhon']); const handleDelete = (index,e) => { setData(data.filter((v, i) => i !== index)); } const rows = data.map((item, index) => { return ( <tr key={index}> <td>{item}</td> <td><button onClick={e => handleDelete(index,e)}>Delete</button></td> </tr> ) }) return ( <div className="App"> <h1>Hello CodeSandbox</h1> <table> {rows} </table> </div> ); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

use hook useState para guardar sus datos y luego con handlerDelete elimine el elemento y configure los datos. React volverá a renderizar el componente (porque su estado ha cambiado) y obtendrá el resultado necesario:

https://codesandbox.io/s/cranky-surf-iykn7?file=/src/App.js

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda