2016-08-04 37 views
0

當我呼叫this.props.relay.setVariables時,Relay將獲取給定這些新變量的數據,然後我想用這些數據做些事情。但是我無法弄清楚確切發生這種情況的好方法。 我第一次嘗試使用onReadyStateChange回調setVariables,但這並沒有抓住道具填充的時刻。確定繼電器何時獲取數據並填充道具

我最終什麼事做來解決這個問題是使用的setTimeoutcomponentWillRecieveProps,屆時道具與新的數據填充。但是有沒有更好的方法來確定數據何時被提取?

回答

0

無需調用setTimeoutcomponentWillReceiveProps(nextProps)內,因爲一旦組件的道具更改生命週期方法被自動調用,所以你只需要像這樣的條件塊在componentWillReceiveProps(假設變量可以通過===檢查進行區分)

if(this.props.data !== nextProps.data){ 
//do your stuff 
} 

,或者您可以使用length場如果data是一個數組:

if(this.props.data.length !== nextProps.data.length){ 
//do your stuff 
} 

如果條件成立,則表示您已收到您正在查找的新數據,並且您可以對其進行處理。

相關問題