当前位置: 首页 > 面试题库 >

如何在React中设置来自axios的响应状态

欧阳乐生
2023-03-14
问题内容

如何在axios中设置获取响应的状态?

axios.get(response){
    this.setState({events: response.data})
}

问题答案:

您在这里遇到语法错误。你应该试试这个

var self = this;
axios.get('/url')
 .then(function (response) {
   console.log(response);
   self.setState({events: response.data})
 })
.catch(function (error) {
   console.log(error);
});
//the rest of the code
var a = 'i might be executed before the server responds'

这里有几件事要注意:

  • axios.get是一个异步函数,这意味着其余代码将被执行。当服务器的响应到达时,传递给的函数then将被执行。的返回值axios.get('url')称为承诺对象。您可以在此处了解更多信息
  • this关键字根据调用的位置而具有不同的值。thisin this.setState 应该 引用构造函数对象,并且在this函数内部调用时,它引用该window对象。这就是为什么我分配this给变量的原因self。您可以在此处了解更多信息

专家提示:

如果您使用ES6,则需要使用箭头函数(没有自己的箭头函数this),并且在this.setState不分配this变量的情况下使用。在这里了解更多

    axios.get('/url')
     .then((response) => {
       console.log(response);
       this.setState({events: response.data})
     })
    .catch((error)=>{
       console.log(error);
    });

这是一个完整的示例https://codesandbox.io/s/rm4pyq9m0o,其中包含通常用于获取数据的
最佳实践 ,包括错误处理,重试和加载。这样可以提供 更好的用户体验 。我们鼓励您修改代码并四处探索,以获取有关它的更多见解。



 类似资料:
  • 问题内容: 当我卷曲东西时,它可以正常工作: 我如何使它与axios一起正常工作?如果这很重要,我正在使用react: 由于某些原因,这不起作用。 问题答案: 这是我如何使用axios在react中上传文件 资源

  • 当您通过提交表单调用API请求时,如何设置Axios响应?我想从/在POST方法中发送表单,并获得API响应,然后用API响应重定向到/result页面。我的代码在下面,它引发 警告:无法对卸载的组件执行React状态更新。 这是一个no-op,但它表示应用程序中存在内存泄漏。 若要修复,请取消useEffect清理函数中的所有订阅和异步任务。在家(在app.js:21) 完成handleSubm

  • 问题内容: 这是我的代码: 但是,当我从浏览器向服务器发出请求时,出现此错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我犯了同样的错误。有没有一种方法可以只在route函数中设置响应头?这样的事情将是理想的: 但我还是找不到这样做。请帮忙。 编辑 如果我使用POST请求卷曲URL,如下所示: 我得到这个回应: 有任何想法吗? 问题答案: 你可以很容易地做到这一点: 查看和 但是有些

  • 有一个需要实现的REST APIendpoint用于获取一些信息并将后端请求发送到另一个服务器,来自后端服务器的响应必须设置为最终响应。我的问题是如何在javax.ws.rs.core.响应中设置响应体? 这里的消息是我需要设置的。但是我尝试了几种方法。没有一个奏效。

  • 问题内容: 我有一个API调用,我需要对其进行一些检查并可能返回各种状态代码。我不需要自定义视图或任何东西,我只需要返回正确的代码。如果用户未通过适当的凭据,则需要返回401状态。如果他们尚未发送受支持的请求格式,则需要返回400状态。 因为它是一个API,所以我真正想做的就是设置响应状态并以一条简单的愚蠢消息退出,该消息说明请求失败的原因(可能使用)。刚好足以完成工作,但我还无法使其正常工作。我

  • 我试图从API中呈现一个简单的用户列表,该列表返回以下内容: 我不完全理解如何使用类型处理Axios响应。TypeScript错误为 类型“{}|{id:number;firstName:string;}”不可分配给类型“IntrinsicAttributes” 属性“项目”在“{}”类型中缺失,但在“UserListProps”类型中是必需的。 从