You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Hook useEffect缺少setAPIData依赖的ESLint报错求助

解决ESLint提示useEffect缺少setAPIData依赖的问题

首先纠正你代码里的一个关键错误:useState返回的是数组,不是对象,不能用对象解构,得改成数组解构,否则APIdata和setAPIData都会是undefined,直接导致功能失效:

const [APIdata, setAPIData] = useState([]); // 正确写法

针对ESLint的报错,给你两种靠谱的解决办法:

方法一:把setAPIData加入依赖数组

React官方保证,useState返回的setter函数(也就是setAPIData)在组件整个生命周期里都是稳定不变的,把它加入依赖数组不会触发useEffect重复执行,完全安全:

function Read() {
    const [APIdata, setAPIData] = useState([]);

    useEffect(() => {
        const getApiData = async () => {
            const res = await axios.get(API);
            setAPIData(res.data);
        }
        getApiData();
    }, [setAPIData]); // 加入setAPIData到依赖数组
}

方法二:用ESLint注释忽略报错(不推荐,除非你确定不需要依赖)

如果你坚持不想加依赖数组,可以在useEffect上方加一行注释让ESLint跳过检查,但这种做法不建议,可能会掩盖真正的依赖问题:

function Read() {
    const [APIdata, setAPIData] = useState([]);

    // eslint-disable-next-line react-hooks/exhaustive-deps
    useEffect(() => {
        const getApiData = async () => {
            const res = await axios.get(API);
            setAPIData(res.data);
        }
        getApiData();
    }, []);
}

内容的提问来源于stack exchange,提问作者K.M.Yasin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:15:29