was macht createContainer in Meteor mit React?

8

Ich arbeite mit dem React Tutorial an der Meteor und versuche createContainer () zu verstehen. Aus dem Lesen hier:

Ссылка

Ich denke, dass es eine in meteor/react-meteor-data definierte Funktion ist, die zum Laden von Daten verwendet wird. In diesem speziellen Fall werden Daten von der Mini-Mongo-Datenbank (hier Task genannt) abgerufen. Meine Frage ist, was macht das zweite Argument von createContainer? (genannt App hier). Danke!

%Vor%     
Laily Ajellu 19.05.2016, 20:56
quelle

3 Antworten

8

Eine Komponente, die mit createContainer erstellt wurde, ist ein einfacher Wrapper um Ihre eigentliche Komponente, aber sie ist sehr leistungsfähig, da sie die Reaktivität von Meteor für Sie übernimmt, so dass Sie nicht darüber nachdenken müssen, wie Sie alles auf dem neuesten Stand halten, wenn sich Ihre Daten ändern ( zB eine Subskription lädt, ReactiveVar / Session var ändert sich)

Eine React-Komponente ist im Grunde genommen nur eine JavaScript-Funktion, sie wird mit einer Menge von Argumenten (Requisiten) aufgerufen und erzeugt eine Ausgabe. React weiß nicht, ob sich Ihre Daten geändert haben, es sei denn, Sie teilen dies mit. Die mit createContainer erstellte Komponente wird erneut gerendert, wenn sich Ihre reaktiven Daten ändern, und einen neuen Satz von Requisiten an Ihre tatsächliche Komponente senden.

Die Optionen für createContainer sind eine Funktion, die die gewünschten reaktiven Daten und die Komponente, die Sie umbrechen möchten, zurückgibt. Es ist wirklich einfach und die Renderfunktion für createContainer ist buchstäblich eine Zeile:

%Vor%

Er durchläuft alle Requisiten, die Sie an die umschlossene Komponente übergeben, und fügt die reaktive Datenquelle hinzu, die Sie eingerichtet haben.

Sie können den Code für sich selbst sehen: Ссылка

Die Syntax <Component {...this.props} wird als Splat bezeichnet und dreht sich im Grunde um:

%Vor%

in:

%Vor%

(Siehe: Ссылка )

    
Michael Mason 19.05.2016 21:33
quelle
4

Ich frage einen Kollegen, das ist die Antwort, die ich bekommen habe:

Das zweite Argument von

createContainer ist der Klassenname, in den die Daten eingekapselt werden sollen. Es wird dann "reaktive Daten" haben, da jedes Mal, wenn die Daten im DB geändert werden, die Requisiten der Klasse sich ändern die neuen Daten.

Außerdem sollte die createContainer () -Funktion außerhalb der Klassendefinition aufgerufen werden.

Wenn jemand etwas hinzuzufügen hat, können Sie gerne etwas beitragen.

    
Laily Ajellu 19.05.2016 21:14
quelle
0

createContainer 's zweites Argument ist der Name der Klasse, an die Sie die Requisiten weitergeben möchten. Sagen wir, createContainer gibt eine Stütze namens firstName zurück Wenn nun ein neuer firstName -Eintrag oder ein aktualisierter firstName in der db vorhanden ist, ruft createContainer das zweite Argument auf, das unser Klassenname ist, mit dem Prop, den es enthält, dh firstName .

Ich hoffe, das macht Sinn.

    
Aditya Singh 22.08.2017 18:29
quelle

Tags und Links