剛接觸react,遇到一些奇奇怪怪的問題,今天想通過調用get請求,從后端取到數據,然后存到狀態里,結果出現了死循環,不斷的發請求,代碼如下
// 傳入公司ID,獲取到數據,將數據存到depts里面 // dept_get_list是我后台定義的一個方法,發送get請求,傳入參數和一個回調函數,異步執行,所以我改變他的狀態,從狀態取值 const [depts, setDepts] = useState([]) const deptList = (orgId) => { dept_get_list({'orgId': orgId}, function (data) { if (data.content) { setDepts(data.content) } } ) } deptList(orgId) // 但當我執行deptList的時候,get請求瘋狂的發請求,根本停不下來
解決方法:在useEffect里面寫
import {useEffect, useState} from "react"; useEffect(() => { deptList(orgId) },[orgId]); // 第二個參數可以放多個,[orgId,],也就是當orgId相同時,只執行一次