0

this.props.relay.setVariablesを呼び出すと、Relay はこれらの新しい変数を指定してデータをフェッチし、その後、このデータを処理したいと考えています。ただし、これがいつ発生するかを正確に知る良い方法がわかりません。最初に setVariables で onReadyStateChange コールバックを使用しようとしましが、これは props が設定された瞬間を捉えませんでした。

問題を解決するために最終的に行ったことは、componentWillRecieveProps で setTimeout を使用することでした。それまでに、小道具に新しいデータが取り込まれます。しかし、いつデータがフェッチされたかを判断するより良い方法はありますか?

4

1 に答える 1

0

setTimeoutコンポーネントの小道具が変更されるとライフサイクルメソッドが自動的に呼び出されるため、内部で呼び出す必要はありませんcomponentWillReceiveProps(nextProps)。そのため、このような条件付きブロックが必要なだけです(変数をチェックcomponentWillReceivePropsで区別できると仮定します)。===

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

または、が配列lengthの場合はフィールドを使用できます。data

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

条件が満たされている場合は、探していた新しいデータを受け取り、それを処理できることを意味します。

于 2016-08-04T09:45:58.547 に答える