Componenti Web Lightning, attraversamento DOM Lightning-datatable / Lightning-tree-grid [duplicato]
Con l'API sono riuscito a ottenere this.template.querySelector("lightning-tree-grid"), ma arrivare a qualsiasi elemento interno restituisce un oggetto proxy vuoto. Con la console del browser riesco a trovare il richiesto:
this.template.querySelector("lightning-tree-grid").shadowRoot.querySelector("lightning-datatable").shadowRoot.querySelector("[aria-level='2']")
Ma non è possibile raggiungerlo in codice. È possibile?
https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation https://developer.salesforce.com/docs/component-library/bundle/lightning-tree-grid/documentation
Risposte
Non puoi farlo a causa del servizio Locker :
Un componente può solo attraversare il DOM e accedere agli elementi creati da un componente nello stesso spazio dei nomi. Questo comportamento impedisce all'anti-pattern di raggiungere gli elementi DOM di proprietà dei componenti in un altro spazio dei nomi.
Tutti i componenti Lightning standard sono esterni al tuo spazio dei nomi.