我正在嘗試使用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粉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
希望對您有幫助。
P粉6747571142024-02-26 00:44:31
我透過加入以下程式碼解決了這個問題:
const table = useTable({ columns, data, autoResetHiddenColumns: false, // <-- stops the rerendering autoResetSortBy: false, // <-- stops the rerendering });