Ich muss ein Stück Code ausführen, nachdem alle Enkel einer Komponente gerendert wurden, um zu einem der Enkelkinder zu scrollen. Die Struktur sieht wie folgt aus:Callback reagieren, um zu blättern, nachdem alle Kinder gerendert wurden
`<GrandParent>
<IntermediateParent>
<IntermediateParent2>
<GrandChild/>
<GrandChild/>
<GrandChild/>
<GrandChild/>
</IntermediateParent2>
</IntermediateParent>
</GrandParent>`
Die Render-Methode von GrandParent
wie folgt aussieht:
render() {
if (!this.props.listOfGrandchildren) { // still loading data from server
return <div>LOADING...</div>
}
return <IntermediateParent grandchildren={this.props.listOfGrandchildren} />
}
Es ist klar, dass ComponentDidMount
mit eindeutig nicht wegen der Kinder arbeiten zu einem späteren Zeitpunkt angebracht ist, nachdem die Daten vom Server geladen wurden. In diesem Fall CDM von GrandParent
würde vor CDM jeden GrandChild
ausgelöst werden könnte ich eine Methode, von oben nach jedem GrandChild
überliefern, die auf CDM genannt werden würden. Auf GrandParent würde ich darauf warten, dass alle GrandChild
diese Methode aufrufen, indem Sie einen Zähler verwenden, und sobald der Zähler gleich der Anzahl der Enkelkinder wäre, könnte ich meinen Code aufrufen, der zum gewünschten Enkelkind blättern würde, aber das fühlt sich sehr an Ärger.
Ich möchte die GrandParent
laden, bevor die Daten vom Server herunterkommt, um ein Platzhalter/Ladeelement zu rendern. Ich suche eine elegantere Methode, um das zu lösen.
UPDATE: Is componentDidMount of parent called after all componentDidMount of children?
Ich weiß, warum mein GrandChild
CDM ren nach CDM von GrandParent
nur ausgelöst wird, sucht ein anderes Verhalten