2017-08-27 1 views
2

現在、状態の変更に基づいて親コンポーネント内の子コンポーネントを再描画しています。子コンポーネントが完全にマウントされ、画面上に再描画されたことを知る必要があります。ここでは、準例です:React NativeコンポーネントのREレンダリングがいつ終了したかを確認する方法?

<Parent> 
    { this.state.showChild1 ? <Child1/> : <Child2/> } 
</Parent> 

componentDidUpdate(prevProps, prevState)を使用することになり、状態変化の後に対応するための一般的な手順は、しかし、このライフサイクルイベントは、状態変化が<Parent>以内に更新してしまうものの影響を考慮せずにstateを更新した後に発射します成分。

私が直面している問題は、状態が完全に更新されても、実際に再レンダリングがまだ完了していないため、新しい子コンポーネントはまだ使用できません。子コンポーネントがいつ再レンダリングされたかを確認する方法はありますか?

答えて

2

コンポーネントにコールバックを渡し(isMounted()のようにsth)、componentDidMountおよびcomponentDidUpdateライフサイクルフックの子でコールバックすることができます。

あなたは、任意のコンポーネントで、これを必要とする場合は、React.Children.mapsee docs)とそれらを反復し、その場でライフサイクルフックを追加します(これは、ビットエラーが発生しやすいですし、クラスコンポーネントを持っている必要があります)

+1

はこれがある可能性がありそれ!提案ありがとう。 – Progoogler

関連する問題