zoukankan      html  css  js  c++  java
  • 关于调用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相同时,只执行一次
  • 相关阅读:
    Swift 构造与析构
    Swift 协议
    Swift 扩展
    Swift 多态
    Swift 继承
    Swift 封装
    Swift 方法
    Swift 属性
    Swift 对象
    Swift 类
  • 原文地址:https://www.cnblogs.com/tuzaizi/p/15706525.html
Copyright © 2011-2022 走看看