Ist componentDidMount Eltern aufgerufen, nachdem alle componentDidMount der Kinder?
Ich habe den code unten in meiner Darstellung von übergeordneten
<div>
{
this.state.OSMData.map(function(item, index) {
return <Chart key={index} feature={item} ref="charts" />
})
}
</div>
Und folgenden code in meine child-Diagramm
<div className="all-charts">
<ChartistGraph data={chartData} type="Line" options={options} />
</div>
Ich dachte, die componentDidMount der Eltern wird nur aufgerufen, nachdem alle child-Prozesse geladen werden. Aber hier die componentDidMount Eltern aufgerufen wird, bevor die componentDidMount des Kindes.
Ist dies, wie Dinge funktionieren? Oder mache ich etwas falsch.
Wenn dies ist, wie die Dinge funktionieren, wie würde ich erkennen, wenn alle Kind-Komponenten geladen werden, von den Eltern?
- Die
componentDidMount()
Methode der untergeordneten Komponenten wird aufgerufen, bevor der parent-Komponenten: Link. - Aber wenn ich console.melden Sie in beide Eltern und Kind componentDidMount(). Textform Eltern-Konsole.log ist zuerst gedruckt
- Beispiel Geige?
- Es gibt richtige Ergebnis in der Geige. Kann sein das es ist weil ich bin das abrufen von Daten async in componentDidMount der Eltern und über das zurückgegebene array aus der call-in Schleife über das Kind OSMData zurückgegeben wird der ajax-Aufruf.
- ja, also im Grunde Sie benutzt der Eltern
componentDidMount()
zu tun, einige Manipulationen (AJAX oder was auch immer) vor dem laden der Kind-Komponenten. Wenn Ihr Kind Komponenten wurden bereits festgelegt, die in übergeordnete ohne Abhängigkeit auf externe Daten, dann KindcomponentDidMount()
wird aufgerufen, bevor der Eltern. - Ich bin vor dem gleichen problem. Asynchrone Laden von Daten bricht mein componentDidMount () - Zyklus, weil ein Platzhalter ist, zeigten erste. Ich denke, es gibt keine Möglichkeit, das zu umgehen. Vielleicht Umstrukturierung meiner Komponenten...
- Können Sie fügen Sie den code, die Sie verwenden in
componentDidMount
oder sonst können Sie diese Frage beantworten Sie sich selbst und markieren Sie Sie als abgeschlossen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja die
componentDidMount
von Kindern aufgerufen werden, bevor der Elternteil.Führen Sie den code unten!
Dokumentation Staaten:
Dies ist, weil zum Zeitpunkt der Erbringung, sollten Sie in der Lage sein, um auf eine interne/Kind-Knoten, die versuchen auf übergeordneten Knoten nicht akzeptiert.
Führen Sie den code unten. Es zeigt die Ausgabe in der Konsole.
JS:
HTML:
The componentDidMount() method of child components is invoked before that of parent components
ich konnte ihn nicht finden in reagieren Website.componentDidMount
sind hier: facebook.github.io/reagieren/docs/...