搜尋

首頁  >  問答  >  主體

超出最大更新深度。 React 限制嵌套更新的數量以防止無限循環。問題

我正在嘗試使用react-table庫,但我遇到了這個問題,我不知道如何解決它。

未捕獲錯誤:超出最大更新深度。當元件在 componentWillUpdate 或 componentDidUpdate 中重複呼叫 setState 時,可能會發生這種情況。 React 限制嵌套更新的數量以防止無限循環。

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)
    }
}

我正在嘗試這個:

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粉218775965P粉218775965262 天前340

全部回覆(2)我來回復

  • P粉465675962

    P粉4656759622024-02-26 09:24:36

    您使用Effect進入無限循環,因為您從伺服器取得“資料”,但也透過該變數的cahnge重新渲染。 從 useEffect 的依賴清單中刪除「data」:

    useEffect(() => {
        const getProducts = async () => {
          const response = await GetProducts();
          setData(response.products);
        };
    
        getProducts();
      }, []); // Remove the 'data' dependency

    希望對您有幫助。

    回覆
    0
  • P粉674757114

    P粉6747571142024-02-26 00:44:31

    我透過加入以下程式碼解決了這個問題:

    const table = useTable({
      columns,
      data,
      autoResetHiddenColumns: false, // <-- stops the rerendering
      autoResetSortBy: false, //  <-- stops the rerendering
    });

    回覆
    0
  • 取消回覆