Zugreifen auf React-Komponenten-Children-Requisiten vom Parent

10

Ich bin gerade dabei, die Schnittstelle für eine Game Engine zu entwickeln, die in JavaScript und ReactJS geschrieben ist.

Wenn ein Spielobjekt eine Textur hat, wird die Quelle der Textur auf dem Spielobjekt angezeigt. Damit dies funktioniert, muss ein Spielobjekt die Referenz der Textur oder genauer die Quelle einer Textur haben. Was ich hoffe, ist ein JSX-Snippet wie das folgende.

%Vor%

Die beste Lösung, die ich mir vorstellen könnte, um die Referenz zu bekommen, ist die Textur als Prop zu haben:

%Vor%

Wenn die für das Game-Modul spezifische Terminologie etwas verwirrend ist, sollten Sie es als Untertitel in einer Button-Komponente betrachten, wo die Caption-Komponente bestimmte Daten hat, auf die die Schaltfläche zugreifen muss.

Meine Frage läuft darauf hinaus: Ist es möglich, auf Kinder-Requisiten zuzugreifen, nachdem die Kinder ohne Hacks oder Anti-Patterns gemountet wurden?

    
Johannes Stein 16.04.2015, 09:09
quelle

4 Antworten

2

Du solltest einfach this.props.texture.props machen können. Ich bin nicht der Meinung, dass es ein Anti-Pattern ist, aber ich denke auch nicht, dass es ein allgemeines Muster ist. Es sieht sicherlich so aus, als ob es die Kapselung brechen könnte, wenn Sie auf eine bestimmte Requisite zugreifen möchten.

Sie müssen das Element nicht als Stütze übergeben, um eine Referenz darauf zu erhalten. Sie können über this.props.children auf Kinder zugreifen.

Weitere Informationen finden Sie in der Dokumentation .

    
Felix Kling 16.04.2015 09:20
quelle
2

Da die Links in den Kommentaren unterbrochen sind, füge ich ein Verknüpfen Sie mit der aktuellen Implementierung von react-router Switch , in der untergeordnete Elemente analysiert werden (siehe Funktion render() ). Auch in diesem Tutorial-Video greift der Autor auf Kinderrequisiten zu von Eltern.

Um nicht auf das gleiche Problem zu stoßen, bei dem die Verbindung wieder abläuft, sieht der Code für den Zugriff auf Kinderrequisiten von Eltern wie im obigen Beispiel aus, wenn er von react-router s Switch :

inspiriert wird

(in GameObject)

%Vor%     
Matej P. 13.06.2017 12:07
quelle
0

Was muss die Textur besitzen und was sollte ihr Elternteil sein?

Könnten Sie ein GameObject definieren, das Eigentümer der Textur ist und das übergeordnete Element der Textur ist? zB:

%Vor%

Und GameObject rendert dann die Textur (In GameObject render ())?

%Vor%     
wgcrouch 16.04.2015 09:21
quelle
0

Ist das die Art von Dingen, die Sie denken?

%Vor% %Vor%

Es ist wirklich ein bisschen unordentlich.

Ich würde persönlich Game ein Array von Texturen geben, um sich selbst zu laden.

Oder entkoppeln Sie Game und Texture vollständig, so dass Daten nur in einer Richtung fließen.

    
Phil Poore 06.01.2017 15:44
quelle

Tags und Links