React Hook useEffect:使用 axios 和 async await .api 调用连续相同的 api 获取数据

IT技术 reactjs api axios
2021-05-17 22:53:51

虽然我从API数组中获取数据并将响应设置为使用useEffect 它调用API重复连续。

let [product, setproduct] = useState([]);

async function fetchData() {
    let response = await axios(
      `api`
    );
    let user = await response.data;
    setproduct(user);
    console.log(product);
  }

  useEffect(() => {
    fetchData();
  }); 
2个回答

文档中

useEffect 是否在每次渲染后运行?是的!默认情况下,它会在第一次渲染之后和每次更新之后运行。(我们稍后将讨论如何自定义它。)与其考虑“安装”和“更新”,您可能会发现更容易认为效果发生在“渲染之后”。React 保证 DOM 在它运行效果时已经更新。

您可以提供空的依赖数组 /[]作为 的第二个参数useEffect,它与componentDidMount在组件生命周期中仅执行一次的相同

useEffect(() => {
    fetchData();
}, []); //This will run only once 

将空[]作为第二个参数传递给useEffect方法。它将在初始渲染时调用,如下所示。

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