2016-08-23 29 views
1

組件是reactjs的關鍵概念。它根據其狀態或道具呈現dom元素。我的情況是,組件需要呈現一些來自http響應的值。我不知道應該在組件生命週期中調用http請求方法。我應該在componentWillMount()方法上調用http請求嗎?由於http請求是異步調用,因此它不會停止組件生命週期過程。如何處理在http響應之前調用組件渲染方法?有沒有更好的方法來處理這種情況?在哪裏做反應組件的http請求

+0

在'componentDidMount'中觸發HTTP請求並呈現微調器而不是實際內容,直到您收到答案。 – Alik

+0

如果我在componentWillMount而不是componentDidMount上調用它,有什麼不同? –

+0

'componentWillMount'發生在第一次'render()'調用之前,而'componentDidMount'剛好在那之後,所以你想要第一個 – martriay

回答

0

由於(根據我的經驗),當處理反應中的異步/外部呼叫時,有很大的改進餘地。最簡單的方法就是在componentWillMount中說的那樣簡單(或簡單)。

儘管何時/何地http請求被觸發,常見模式是渲染微調控件,直到componentWillUpdate決定有足夠的數據來呈現實際組件。

+0

感謝您的回覆。我擔心的是,如果我在componentWillMount中執行它,我仍然需要處理render()方法上的數據未準備好的東西嗎? –

+0

正確的,例如通過檢查狀態中的'isReady'屬性,可以通過http回調來設置 – martriay