關於調用react中鈎子函數useState死循環的問題


 

剛接觸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相同時,只執行一次

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM