当我调用 this.props.relay.setVariables 时,Relay会在给定这些新变量的情况下获取数据,之后我想对这些数据进行处理。但是,我无法找到确切知道何时发生这种情况的好方法。 我首先尝试在 setVariables 上使用 onReadyStateChange 回调,但这并没有抓住填充道具的时刻。
我最终要解决的问题是在 componentWillRecieveProps 中使用 setTimeout ,然后使用新数据填充道具。但有没有更好的方法来确定何时获取数据?
答案 0 :(得分:0)
没有必要在setTimeout
内部调用componentWillReceiveProps(nextProps)
,因为一旦组件的props更改,生命周期方法就会被自动调用,所以你只需要componentWillReceiveProps
中的这样的条件块(假设变量可以通过===
检查来区分
if(this.props.data !== nextProps.data){
//do your stuff
}
如果length
是数组,则可以使用data
字段:
if(this.props.data.length !== nextProps.data.length){
//do your stuff
}
如果条件成立,则表示您已收到所需的新数据,并且可以对其进行处理。