2017-09-30 26 views
-2

我創建了一個具有反應本機的應用程序。這個應用程序包含3個屏幕和1個菜單。如何在導航屏幕後從遠程URL加載數據?

畫面1:首頁(內容列表:用戶信息,照片,會員日期等) 屏幕2:用戶信息(當輕敲,用戶屏幕加載和顯示電影的用戶已經有) 屏幕3:搜索用戶

和一個菜單從左到右打開。

我已經編碼這個沒有使用導航,但現在我想添加導航。但是,當我編碼這個,我用一個根組件處理所有的url請求,並顯示正確的屏幕。例如,當應用程序第一次啓動它加載主屏幕並使用this.setState({ page: 'home', loading: true })render()我檢查this.state.page以獲得顯示哪個屏幕。有2個setState(第一個在請求之前,第二個在請求之後)。第一次通話後,我會顯示該頁面,但當然數據不會被加載,您只能看到設計。在請求返回一些數據後,render()會再次運行,但這次是數據。

我該如何移動到導航?我的意思是我找不到辦法做到這一點。我不想混淆代碼,並且從未使用過導航。我不想顯示任何標籤欄或頂欄。我只是想做這個處理新聞。標籤欄和頂部欄不是我設計的一部分。

+0

你的問題有點寬泛,不清楚你的問題究竟是什麼。請嘗試使其更加清晰,並添加當前代碼的[mcve]。 – bennygenel

回答

0

您應該取數據componentDidMount()Here是文檔。

對於emxemple,當您切換到您的頁面時用戶詳細信息,您的組件將會掛載。起初,你讓loading在你的狀態爲真。在componentDidMount()中,你可以調用你的函數來獲取你的數據。當您收到您的數據時,您將loading設置爲false,並顯示您的信息。

+0

componentDidMount()不會運行,只要我setState()讓我們說我需要在同一屏幕上呈現另一個數據並設置加載:true,但componentDidMount只觸發一次 – blacksun