Profondeur de mise à jour maximale dépassée. React limite le nombre de mises à jour imbriquées pour éviter les boucles infinies. question
P粉218775965
P粉218775965 2024-02-25 16:30:55
0
2
424

J'essaie d'utiliser la bibliothèque React-Table mais je rencontre ce problème et je ne sais pas comment le résoudre.

Erreur non détectée : profondeur de mise à jour maximale dépassée. Cela peut se produire lorsqu'un composant appelle setState à plusieurs reprises dans composantWillUpdate ou composantDidUpdate. React limite le nombre de mises à jour imbriquées pour éviter les boucles infinies.

export const GetProducts=async()=>{
    try {
        const response=await axios({
            url:`${baseUrl}/products`,
            method:"GET"
          })

          // console.log(response.data.products)
          return await response.data.products
    } catch (error) {
        console.log(error.response)
    }
}

J'essaie ceci :

const TablaStock = () => {
  const [data, setData] = useState([]);


  useEffect(() => {
    const getProducts = async () => {
      const response = await GetProducts();
      setData(response.products);
    };

    getProducts();
  }, [data]);


  const columns =useMemo(() =>  [
    { Header:"CODIGO",
      accessor: "codigo"
     },
    { Header:"PRENDA",
      accessor: "prenda" },
    { Header:"MARCA",
      accessor: "marca" },
    { Header:"CATEGORIA",
      accessor: "categoria" },
    { Header:"TALLE",
      accessor: "" },
    { Header:"CLIENTE",
      accessor: "cliente" },
    { Header:"FECHA DE INGRESO",
      accessor: "fechaIngreso" },
    { Header:"PRECIO DE VENTA",
      accessor: "precioVenta" },
    { Header:"GANANCIA CLIENTE",
      accessor: "" },
    { Header:"GANCANIA FERNANDEZ SHOP",
      accessor: "",
      Cell:({})},
    { Header:"ESTADO",
      accessor: "estado" },
    { Header:"TIEMPO EN VENTA",
      accessor: "tiempoEnVenta" },
  ]);

  const table=useTable({
    columns,
    data })

   

  return (
  <>
  </>
  );
};

export default TablaStock;

P粉218775965
P粉218775965

répondre à tous(2)
P粉465675962

Vous entrez dans une boucle infinie avec Effect car vous obtenez les "données" du serveur, mais vous effectuez également un nouveau rendu via le changement de cette variable. Supprimez les "données" de la liste des dépendances de useEffect :

useEffect(() => {
    const getProducts = async () => {
      const response = await GetProducts();
      setData(response.products);
    };

    getProducts();
  }, []); // Remove the 'data' dependency

J'espère que cela aide.

P粉674757114

J'ai résolu ce problème en ajoutant le code suivant :

const table = useTable({
  columns,
  data,
  autoResetHiddenColumns: false, //  
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal