Composants Web Lightning, traversée DOM Lightning datatable / Lightning-tree-grid [duplicate]

Nov 30 2020

Avec l'API, j'ai réussi à obtenir this.template.querySelector("lightning-tree-grid"), mais accéder à n'importe quel élément interne renvoie un objet proxy vide. Avec la console du navigateur, je parviens à trouver le nécessaire:

this.template.querySelector("lightning-tree-grid").shadowRoot.querySelector("lightning-datatable").shadowRoot.querySelector("[aria-level='2']")

Mais, incapable de l'atteindre dans le code. C'est possible?

https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation https://developer.salesforce.com/docs/component-library/bundle/lightning-tree-grid/documentation

Réponses

1 PhilW Nov 30 2020 at 16:18

Vous ne pouvez pas faire cela à cause du service Locker :

Un composant ne peut parcourir que le DOM et accéder aux éléments créés par un composant dans le même espace de noms. Ce comportement empêche l'anti-modèle d'accéder aux éléments DOM appartenant aux composants d'un autre espace de noms.

Tous les composants Lightning standard sont en dehors de votre espace de noms.