当前位置: 首页 > 知识库问答 >
问题:

useEffect钩子在React.js中获取api时出现问题[duplicate]

段干华皓
2023-03-14

这是react项目中的bootcamp.js文件

import React, { Component, useState, useEffect } from 'react';

const Bootcamps = () => {
  const [error, setError] = useState(null);
  const [isLoaded, setIsLoaded] = useState(false);
  const [bootcamps, setBootcamps] = useState();

  const loadData = async () => {
    const response = await fetch('http://localhost:5000/api/v1/bootcamps');
    const data = await response.json();

    setIsLoaded(true);
    setBootcamps(data);
    console.log(data);      // showing data
    console.log(bootcamps); // showing undefined
  };

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

........
......
...

console.log(训练营)显示未定义。Plzz帮助

共有2个答案

敖涵容
2023-03-14

如果你愿意,你可以这样尝试;

const loadData = async () => {
    const response = await fetch('http://localhost:5000/api/v1/bootcamps');
    const data = await response.json();

    setIsLoaded(true);
    setBootcamps(data);
  };



useEffect(() => {
    loadData();
   console.log(bootcamps)
  }, [bootcamps]);

因为你的依赖缺失,我不知道你的数据类型,但你的数据是一个对象,如果你想试试;

const [bootcamps, setBootcamps] = useState({});
严宇
2023-03-14

setBootcamps是异步的,因此在调用setter函数后无法立即看到结果。

您可以添加另一个使用效果,引导营状态作为依赖项。所以,当训练营改变时(在状态设置后),你会做一些事情。

  useEffect(() => {
    console.log({ bootcamps });
  }, [bootcamps]);
 类似资料:
  • 我显示的优惠券的列表基于类别选择使用使用使用效果和佐贺。 这是我的初始状态。设置为真正的默认值,以便每当组件被访问时,它首先显示加载器,之后从获得调度,它命中api并使用redux-saga异步获得响应,然后设置为false,并根据响应或得到更新。 这是一个组件: 当组件第一次被访问时,正在加载因此将变为真,并且组件呈现加载程序并请求api获取数据。 从api获取数据后,加载设置为false,组件

  • 我正在开发一个小型web应用程序,其中我与Google+域API集成。我正在使用OAuth2身份验证,我已经从Google API控制台为我的web应用程序生成了client_id和client_secret。使用Google+域API,我可以生成访问令牌。 > 正在生成授权URL 授权后 正在提取圆圈信息: 注意:我还在我的Google API控制台中启用了Google+域API。因为它是一个w

  • 下面是API调用的代码 所以当我检查应用程序时,我会... 我如何解决CORS问题,以便能够从API获取所需的详细信息到应用程序?

  • 我在获取下拉列表的值时遇到了麻烦,我有学生实体和部分实体,它们之间有一个关系船,在jsp中它就像而不是这个在jsp中,我需要获得特定的bean属性名称,如 学生示范班 我的道实现是这样的 像金丝马龙一样。 控制器就像 我对这个问题的最后润色是如何获得指定bean属性名的下拉值(这里我想获得bean属性名称,如)com.chan.Eschool.student.model.Section@26552

  • 我的应用程序将作为一项服务运行,并定期扫描这个收件箱中的新电子邮件。它应该找到收件人地址,并根据使用的别名,将电子邮件归档到与该客户端相关的位置。 我想要的资源是: 但是,在SDK中似乎没有针对它的方法。

  • 本文向大家介绍在React.js中使用useState钩子,包括了在React.js中使用useState钩子的使用技巧和注意事项,需要的朋友参考一下 钩子允许功能组件在反应中获得基于类的组件中可用的特性,从而使它们更加强大。 useState,我们将从react导入。从'react'导入{useState}; 这有助于我们为功能组件创建局部状态变量,并提供更新该变量的方法。 类中的状态是一个对象