Lightning Web Components, Lightning-datatable / Lightning-tree-grid DOM traversal [duplikat]
Z API udało mi się dostać this.template.querySelector("lightning-tree-grid")
, ale dotarcie do dowolnego elementu wewnętrznego zwraca pusty obiekt proxy. Za pomocą konsoli przeglądarki udaje mi się znaleźć wymagane:
this.template.querySelector("lightning-tree-grid").shadowRoot.querySelector("lightning-datatable").shadowRoot.querySelector("[aria-level='2']")
Ale nie można dotrzeć do tego w kodzie. Czy to możliwe?
https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation https://developer.salesforce.com/docs/component-library/bundle/lightning-tree-grid/documentation
Odpowiedzi
Nie możesz tego zrobić ze względu na usługę Locker Service :
Komponent może tylko przechodzić przez DOM i uzyskiwać dostęp do elementów utworzonych przez komponent w tej samej przestrzeni nazw. To zachowanie zapobiega anty-wzorcowi sięgania do elementów DOM należących do komponentów w innej przestrzeni nazw.
Wszystkie standardowe komponenty Lightning znajdują się poza twoją przestrzenią nazw.