关于调用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相同时,只执行一次

 

posted @ 2021-12-19 00:35  不忘初心❤  阅读(1391)  评论(0编辑  收藏  举报