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 Kind componentDidMount() 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?

Schreibe einen Kommentar