关于调用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