简体   繁体   English

如何修复这个“React Hook useEffect has a missing dependency”警告?

[英]How to fix this “React Hook useEffect has a missing dependency” warning?

Here's my file:这是我的文件:

// useFetcher.js
import { useEffect, useState } from "react";

export default function useFetcher(action) {
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);
  const [data, setData] = useState(null);
  async function loadData() {
    try {
      setLoading(true);
      const actionData = await action();
      setData(actionData);
    } catch (e) {
      setError(e);
    } finally {
      setLoading(false);
    }
  }
  useEffect(() => {
    loadData();
  }, [action]);
  return [data, loading, error];
}

On line 21, eslint complaints that:在第 21 行,eslint 抱怨:

React Hook useEffect has a missing dependency: 'loadData'. Either include it or remove the dependency array.eslint(react-hooks/exhaustive-deps)

How can I fix this?我怎样才能解决这个问题?

The best way here would be to define your async function inside the useEffect :这里最好的方法是在 useEffect 中定义你的异步useEffect

export default function useFetcher(action) {
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);
  const [data, setData] = useState(null);

  useEffect(() => {
    async function loadData() {
      try {
        setLoading(true);
        const actionData = await action();
        setData(actionData);
      } catch (e) {
        setError(e);
      } finally {
        setLoading(false);
      }
    }

    loadData();
  }, [action]);
  return [data, loading, error];
}

More info in the docs . 文档中的更多信息。

Add the loadData function to the array in your useEffect .loadData function 添加到useEffect中的数组中。 This will get rid of the complaint:这将摆脱投诉:

useEffect(() => {
  loadData();
}, [action, loadData]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何解决此警告:“React Hook useEffect 缺少依赖项:'history'”? - How to fix this warning: “React Hook useEffect has a missing dependency: 'history'”? 我应该如何修复 eslint 警告(React Hook useEffect 缺少依赖项)和由警告引起的循环? - How should I fix eslint warning (React Hook useEffect has a missing dependency) and a loop caused by the warning? React useEffect 钩子缺少依赖项警告 - React useEffect hook has a missing dependency warning 警告:React Hook useEffect 缺少依赖项 - warning: React Hook useEffect has a missing dependency React Hook useEffect 缺少依赖项警告 - React Hook useEffect has a missing dependency warning 使用 useEffect React Hook 时如何修复缺少依赖项警告 - How to fix missing dependency warning when using useEffect React Hook 修复 React Hook useEffect 缺少依赖项 - Fix React Hook useEffect has a missing dependency React Hook useEffect 缺少依赖项:'setValid'。 如何删除此警告 - React Hook useEffect has a missing dependency: 'setValid' . How to remove this warning React Hook useEffect 缺少依赖项:'notes',如何修复? - React Hook useEffect has a missing dependency: 'notes', how to fix it? 如何修复 React Hook useEffect 缺少依赖项 - How to fix React Hook useEffect has a missing dependency
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM