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

118
Vistas
Cómo actualizar los datos de la tabla cuando uno de los elementos tiene su fecha y hora válidas hasta que ha expirado en React Js

Tengo una tabla de datos donde hay una sección llamada Artículo , Hora y ValidTill , por ejemplo, uno de los artículos tiene una hora del 2 de abril de 2022 a las 3:08:01 p. m. y es válida hasta el 2 de abril de 2022 a las 3:09:26. pm así que después de que caduque validtill hice una llamada api en useEffect que ya lo estoy haciendo una vez que el componente se monta, pero también quiero que se ejecute cuando expire validTill entonces, ¿cómo se puede lograr?

 const [quotesData, setQuotesData] = useState([]);
 useEffect(() => { getRandomdata(); }, []); async function getRandomdata() { const result = await RandomApi.get(`/quotes/${symbolId}`); setQuotesData(result.data.payload); }
 <Table stickyHeader className={classes.stickyHeader}> <TableHead> <TableRow> <TableCell>Item</TableCell> <TableCell>Time</TableCell> <TableCell>Validtill</TableCell> </TableRow> </TableHead> <TableBody> {quotesData.map(({Item, time, valid_till }) => ( <TableRow key={Item}> <TableCell>{Item}</TableCell> <TableCell> {moment(time).format("MMMM Do YYYY, h:mm:ss a")} </TableCell> <TableCell> {moment(valid_till).format("MMMM Do YYYY, h:mm:ss a")} </TableCell> </TableRow> ))} </TableBody> </Table>
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Como podría haber muchas filas en su tabla y le gustaría escuchar el evento de caducidad de cada fila para poder enviar una solicitud de API para cada fila específica, ¿verdad?

Para lograrlo, puede usar la función javascript setInterval para establecer el intervalo para cada segundo y en el cuerpo de la devolución de llamada setInterval puede verificar el vencimiento de cada fila de esta manera.

 useEffect(() => { setInterval(() => { // loop on each row an compare time to current time for expiration check if expired send the api request quotesData.map(({ Item, time, valid_till }) => { if (valid_till > currentTime) { // expired //send api request } }); }, 1000); });

esta podría ser una buena solución si su conjunto de datos no es demasiado grande. Para conjuntos de datos más grandes, tenemos que hacer algunos ajustes más en el código.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Utilicé otro enfoque, en lugar de ejecutar un sondeo de intervalo para cada elemento, lo que sería codicioso, creo que podría calcular el tiempo restante desde el momento en que se monta el componente hasta el tiempo de vencimiento y simplemente colocar un tiempo de espera con la diferencia entre esos dos fechas, hice un ejemplo aquí, mira si te puede ayudar: https://stackblitz.com/edit/react-t5jfab

Coloqué solo un elemento en la matriz, pero funciona con cualquier cantidad de elementos, ya que solo los recorre y coloca tiempos de espera.

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