Réagir, se limite parent de l'élément dom nom au sein de la composante
Dans mon composant, comment puis-je accéder, le nom du composant parent, il est imbriquée à l'intérieur d'?
Donc si mon rendu est donc:
ReactDOM.render(
<RadialsDisplay data={imagedata}/>,
document.getElementById('radials-1')
);
Comment puis-je récupérer l' id
nom #radials-1
partir de dans le composant lui-même?
- Vous ne pouvez pas utiliser document.getElementById ("rayons-1')?
- J'ai plusieurs rendus pour ce composant pour différents ids
- pass 'radiales-1' comme un accessoire?
- Pas de. Doit être plus dynamique que cela.
Vous devez vous connecter pour publier un commentaire.
Il a probablement fait le plus de sens pour passer comme une propriété, mais si vous vraiment besoin de l'obtenir par programmation, et de à l'intérieur de le composant, vous pouvez attendre que le composant de montage, trouver son nœud DOM, et puis regarder son parent.
Voici un exemple:
De travail de démonstration: https://jsbin.com/yayepa/1/edit?html,js,sortie
Si vous faites cela, beaucoup, ou si vous voulez être vraiment de fantaisie, vous pourriez utiliser une plus grande composante de l'ordre:
Ici,
withContainerId
est une fonction qui prend un argument appeléproperty
et retourne une nouvelle fonction. Cette fonction peut prendre un type de composant comme seul argument, et renvoie une plus grande composante de l'ordre. Lors du rendu, le nouveau composant rendu de la passé composant, avec tous ses accessoires d'origine, plus un supplément de prop spécifiant le parent de l'ID du conteneur sur la propriété spécifiée par leproperty
argument.Vous pouvez les utiliser avec de l'ES7 décorateurs (tel qu'il est actuellement mis en œuvre) si vous le souhaitez, ou par un simple appel de la fonction:
De travail de démonstration: https://jsbin.com/zozumi/edit?html,js,sortie
this.containerId = ...
), puis vous devez ajouter unforceUpdate
appel.setState
automatiquement re-rend, et le numéro du conteneur est partie de l'état du composant, même si ça ne changera pas dans l'avenir.