2016-08-11 46 views
0

我有一個組件顯示ListView中的用戶,它需要在呈現前進行抓取調用。React Native在渲染之前進行網絡調用

我瀏覽到使用該組件:

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

ListUsers組件我有componentWillReceiveProps,這樣我可以使讀取調用之前渲染。

但是該方法從未被調用過。我可以導航到AddUser組件。

從這裏添加新用戶或者用戶可以取消。

如果添加新用戶,我導航回用ListUsers組件:

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

此時componentWillReceiveProps被調用。

如果用戶取消,然後我用導航回到ListUsers組件:

this.props.navigator.pop(); 

誰能幫助,看看有什麼我做錯了嗎?

回答

0

您完美的描述了該文件說,使用componentWillReceiveProps

從文檔時會發生:

componentWillReceiveProps

調用當組件接收新道具。此方法不是調用初始渲染的 。

在你的場景中,你有什麼理由不能使用componentWillMount來獲取調用嗎?在渲染組件之前調用componentWillMount,它是您可以調用setState的第一個點。

如果問題是你需要保證渲染只在提取完成之前顯示某些數據,有一些策略可以做到這一點,但最簡單的方法可能是在你的狀態中簡單地設置一個標誌爲false構造函數(如果您使用ES6方法進行開發),並在提取完成後將其翻轉爲true。渲染方法中的if語句將完成此策略。

如果你想讓我整理一個更全面的例子,我可以這樣做。

相關問題