如何在 useEffect 中设置状态

时间:2021-06-14 11:31:50

标签: reactjs react-hooks

我想模拟在 useEffect 钩子中获取数据,但我收到警告: React Hook useEffect 缺少依赖项:'fetchData'。

因为我只想调用这个 fetch 函数一次,所以它应该可以正常工作。你能帮我吗?

我从本地数组中“获取”数据

const people = [
    { id: 1, name: 'Alex' },
    { id: 2, name: 'Ben' },
  ];

//useState hook where I want to keep fetched data

const [data, setData] = useState([]);

//simulated fetch data function

const fetchData = () => {
    setTimeout(() => {
      people.forEach(item => {
        setData(currentState => [...currentState, item]);
      })
    }, 500);
  };

//finally useEffect hook

useEffect(() => {
    fetchData();
}, []);

1 个答案:

答案 0 :(得分:0)

有两种可能的修复方法:

  1. 将 fetchData fn 包含到 useEffect 中,这样它就不会抱怨依赖项。
  2. 将 fetchData fn 包含到依赖项数组中,这也将在组件挂载时运行。