Componenti Web Lightning, attraversamento DOM Lightning-datatable / Lightning-tree-grid [duplicato]

Nov 30 2020

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

1 PhilW Nov 30 2020 at 16:18

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.