javascript - 无法使用 setstate Hook 复制数组

标签 javascript reactjs react-hooks

每当我尝试更新未更新的 Hook 时,我都会使用 axios 从后端获取数据。 数据是我从中提取数据并尝试设置元素的 JSON。这听起来可能很傻,但有人能告诉我什么是依赖数组吗?

我不断得到这个
第 18 行:React Hook useEffect 缺少依赖项:'elements'。要么包含它,要么删除依赖数组 react-hooks/exhaustive-deps

这是代码

import React, { useEffect, useState } from 'react';
import './App.css';
import axios from 'axios';

function App() {
  const [elements, setElements] = useState([]);

  useEffect(() => {
    const res = async () => {
      const result = await axios.get('/data');
      const data = result.data;
      console.log(data);
      setElements(elements => [...elements, data]);
      console.log(elements);
    };
    res();
  }, []);
 console.log(elements.map(element => console.log(element)));
  return <div className='App'>Hello</div>;
}

export default App;

最佳答案

只是 console.log 在您的 effect 之外。您已经在使用 useState

updater 版本
 setElements(elements => [...elements, data])

缺少依赖项警告来自 console.log(elements)

import React, { useEffect, useState } from 'react';
import './App.css';
import axios from 'axios';

function App() {
  const [elements, setElements] = useState([]);

  useEffect(() => {
    const res = async () => {
      const result = await axios.get('/data');
      const data = result.data;
      console.log(data);
      setElements(elements => [...elements, data]);
    };
    res();
  }, []);

  console.log(elements);

  return <div className='App'>Hello</div>;
}

export default App;

关于javascript - 无法使用 setstate Hook 复制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190458/

相关文章:

javascript - Mirth Javascript IF 编码问题

reactjs - react useEffect 钩子(Hook)和 eslint 警告

reactjs - 忽略 react hook 返回数组中的值 -

javascript - react : Am I using conditional rendering wrongly as it seems to not evaluate as expected?

javascript - React.createElement : type should not be null, undefined..创建/渲染组件时

javascript - 使用 javascript/jquery 向表中添加新行

javascript - 使用点击事件信息填充文本字段

javascript - 为什么我无法通过原型(prototype)访问类中 “this” 上的属性?

javascript - 我正在尝试在 ejs 文件中加载 bundle.js 脚本?

mysql - Reactjs - 日期类型字段不更新DATE类型的MYSQL日期列