es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los datos obtenidos de Firebase utilizando useSWR devuelven indefinido.

Estoy siguiendo un curso donde obtengo datos de Firebase usando useSWR y los uso para establecer el estado. Sin embargo, cuando intento hacer un console log de los datos, obtengo “undefined” y la pantalla muestra “loading”. ¿Hay alguna razón para esto? Incluso copié el mismo código que el instructor usa (excepto el enlace de la API).

import { useEffect, useState } from 'react';
import useSWR from 'swr';

function LastSalesPage() {
  const [sales, setSales] = useState();
  // const [isLoading, setIsLoading] = useState(false);

const { data, error } = useSWR(
    'https://nextjs-2021-default-rtdb.firebaseio.com/sales.json'
  );

console.log('Data:', data);

useEffect(() => {
    if (data) {
      const transformedSales = [];

  for (const key in data) {
    transformedSales.push({
      id: key,
      username: data[key].username,
      volume: data[key].volume,
    });
  }

  setSales(transformedSales);
}


}, [data]);

if (error) {
    return <p>Error al cargar.</p>;
  }

if (!data || !sales) {
    return <p>Cargando...</p>;
  }

return (
    <ul>
      {sales.map((sale) => (
        <li key="{sale.id}">
          {sale.username} - ${sale.volume}
        </li>
      ))}
    </ul>
  );
}

export default LastSalesPage;
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el enlace de la API que estás utilizando sea incorrecto o que los datos no se estén obteniendo de manera correcta. Puedes intentar verificar el enlace de la API y asegurarte de que sea correcto. También puedes intentar depurar el código para ver si los datos se están obteniendo correctamente.

Comments are closed.