Accès aux accessoires des enfants du composant React du parent
Je suis actuellement dans le processus de conception de l'interface pour un moteur de jeu qui est écrit en JavaScript et ReactJS.
Si un objet de jeu a une texture, la source de la texture de l'objet de jeu. Pour que cela fonctionne, un objet de jeu doit avoir la référence de la texture ou plus précisément la source d'une texture. Ce que j'espère c'est d'avoir un JSX extrait de code comme le suivant.
<GameObject>
<Texture source="myimage.png" />
</GameObject>
La meilleure solution que je pouvais venir pour obtenir la référence est d'avoir la texture comme un accessoire, comme suit:
<GameObject texture={<Texture source="myimage.png" />} />
Si le moteur du jeu-la terminologie spécifique est un peu trop déroutant, penser à cela comme une légende composant à l'intérieur d'un composant button, où la légende de la composante spécifique de données, le bouton doit avoir accès.
Ma question se résume à ceci: Est-il possible d'accéder à des enfants prop après que les enfants ont été montés sans hacks ou d'être un anti-modèle?
source d'informationauteur Johannes Stein
Vous devez vous connecter pour publier un commentaire.
Parce que les liens dans les commentaires sont cassés, je joins une lien à l'actuel
react-router
Switch
module de mise en œuvre où les enfants sont analysés (voir larender()
fonction). Également dans ce tutoriel vidéo l'auteur accède à des enfants, des accessoires de parent.À bosse pas du tout dans le même problème avec un lien qui expire encore, voici comment le code pour accéder à des enfants, des accessoires de parent serait ressembler à l'exemple ci-dessus lorsqu'ils sont inspirés par
react-router
'sSwitch
:(à l'intérieur de GameObject)
Vous devriez être en mesure de faire de
this.props.texture.props
. Je ne suis pas la vaisselle d'être un anti-modèle, mais je ne pense pas que c'est un modèle commun. Il semble certainement comme ça peut être de briser l'encapsulation si vous souhaitez accéder à un niveau particulier prop.Vous n'avez pas à passer à l'élément de support pour obtenir une référence à elle. Vous pouvez accéder à des enfants par le biais de
this.props.children
.Voir le la documentation pour plus d'info.
Ce que doit posséder la texture, et de quoi doit-elle être parent?
Pourriez-vous définir un GameObject qui est propriétaire et qui est le parent de la Texture? par exemple:
Et GameObject rend la texture (En GameObject render() )?