13
A
回答
38
这里有一个语法错误。你应该试试这个代替
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')
的返回值称为承诺对象。您可以阅读more about it herethis
关键字具有不同的值,具体取决于它的调用位置。this
inthis.setState
应该指的是构造函数对象,当你在函数内部调用this
时,它指的是window
对象。这就是为什么我将this
分配给变量self
。您可以阅读more about this here
临提示:
如果使用ES6,你可能需要使用箭头功能(不拥有自己的this
),并使用this.setState
不分配this
给一个变量。 more about it here
axios.get('/url')
.then((response) => {
console.log(response);
this.setState({events: response.data})
})
.catch((error)=>{
console.log(error);
});
14
这不起作用,因为“this”在axios内部不同。 axios中的“this”是指axios对象,而不是你的反应组件。您可以使用.bind来解决此问题
另外axios没有正确使用。
它应该是这个样子
axios.get("/yourURL").then(function(response) {
this.setState({ events: response.data });
}.bind(this));
另外,如果使用ES6你能分出来的功能箭头功能并获得相同的效果,而不绑定
axios.get("/yourURL").then(response => {
this.setState({ events: response.data });
});
0
我处理过类似的承诺在过去,当我学习反应的时候。我所做的是将API调用放在componentDidMount
方法上,并将状态设置为初始值。数据被提取时我使用了一个加载器。
componentDidMount() {
const self = this;
axios.get(response){
self.setState({ events: response.data });
}
截至目前,我会用类似于checkenrode的说法。
0
做这样的事情:
var self= this; // self will now be referred to your component
axios.get("http://localhost:3001/get_user?id=" + id)
.then(function (response) {
if(response.data.rows != null)
user_detail = response.data.rows;
console.log(response);
self.setState({email: user_detail.name, name: user_detail.name})
})
相关问题
- 1. Axios OPTIONS响应中的句柄状态(例如503)
- 2. 设置响应状态代码
- 3. 如何在asp.net web服务方法中设置响应状态
- 4. axios响应中的字段
- 5. 如何得到这个反应Ajax响应,并设置状态
- 6. 如何处理axios中的空响应?
- 7. 如何设置http响应的服务器状态码?
- 8. 在渲染之前在rails中设置响应状态4
- 9. 动态响应状态
- 10. 在Flask响应中设置HTTP状态文本
- 11. 当HTTP响应状态设置为400时,IIS覆盖HTTP响应文本
- 12. 错误响应状态+设计+ factory_girl
- 13. 如何设置域响应[“设置Cookie”]
- 14. 处理axios响应中的数据
- 15. Web响应状态代码
- 16. MVC状态页面响应
- 17. 响应状态200:好吧
- 18. 响应状态200 odoo 9
- 19. FormsAuthentication.SignOut在设置响应状态代码时失败
- 20. 如何在HttpReponseMessage上设置响应cookie?
- 21. 根据响应状态,我可以在axios post中抛出错误
- 22. IE中的HTTP响应状态代码
- 23. Twilio中的SMS状态回调响应
- 24. 设置来自ASMX Web Service的HTTP响应状态代码
- 25. 如何设置Expressjs对XML的响应?
- 26. 设置第一响应模态表
- 27. 如何在另一个axios中使用axios响应获取React JS?
- 28. IBM Worklight 6.2无法设置状态。响应已经提交
- 29. 响应未设置状态400泽西岛
- 30. Spring Boot自定义ErrorAttributes http状态未设置为响应
这就是我最后做了。 – Ksenia
这是正确的答案,谢谢@abdellah – Dipesh