2016-08-04 25 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 
} 

如果条件成立,则表示您已收到您正在查找的新数据,并且您可以对其进行处理。

相关问题