Веб-компоненты Lightning, обход DOM-модели Lightning-datatable / Lightning-tree-grid [дубликат]

Nov 30 2020

С API мне удалось получить this.template.querySelector("lightning-tree-grid"), но попадание в любой внутренний элемент возвращает пустой прокси-объект. С помощью консоли браузера мне удается найти необходимые:

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

Но не удалось достичь этого в коде. Является ли это возможным?

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

Ответы

1 PhilW Nov 30 2020 at 16:18

Вы не можете этого сделать из-за Locker Service :

Компонент может только проходить через DOM и получать доступ к элементам, созданным компонентом в том же пространстве имен. Такое поведение предотвращает проникновение анти-шаблона в элементы DOM, принадлежащие компонентам в другом пространстве имен.

Все стандартные компоненты Lightning находятся за пределами вашего пространства имен.