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. 設置OWIN響應狀態代碼
- 4. 設置響應狀態代碼
- 5. axios響應中的字段
- 6. 如何在asp.net web服務方法中設置響應狀態
- 7. 如何處理axios中的空響應?
- 8. 如何得到這個反應Ajax響應,並設置狀態
- 9. API - 狀態響應
- 10. DataAccessException響應狀態
- 11. 如何設置http響應的服務器狀態碼?
- 12. Spring 3.2 DeferredResult - 如何設置錯誤響應的狀態碼?
- 13. 在渲染之前在rails中設置響應狀態4
- 14. 動態響應狀態
- 15. 如何在JQuery中設置響應
- 16. 在Flask響應中設置HTTP狀態文本
- 17. 當HTTP響應狀態設置爲400時,IIS覆蓋HTTP響應文本
- 18. 錯誤響應狀態+設計+ factory_girl
- 19. 如何設置域響應[「設置Cookie」]
- 20. 處理axios響應中的數據
- 21. Freebase:javascript,如何知道狀態響應
- 22. 如何獲取jQuery.ajax響應狀態?
- 23. 如何接收WCF狀態響應
- 24. 如何訪問終端狀態響應?
- 25. Java Servlet API - 如何在不提交響應的情況下設置響應狀態和原因短語
- 26. Vue.js無法設置從外部axios響應返回的數據
- 27. 如何爲應急響應設置wiki?
- 28. JavaScript - XMLHttpRequest響應狀態0
- 29. 響應狀態200:好吧
- 30. Web響應狀態代碼
這就是我最後做了。 – Ksenia
這是正確的答案,謝謝@abdellah – Dipesh