Lightning Web Components, การส่งผ่าน 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 :

คอมโพเนนต์สามารถสำรวจ DOM และเข้าถึงองค์ประกอบที่สร้างโดยคอมโพเนนต์ในเนมสเปซเดียวกันเท่านั้น ลักษณะการทำงานนี้ป้องกันรูปแบบการต่อต้านการเข้าถึงองค์ประกอบ DOM ที่เป็นของคอมโพเนนต์ในเนมสเปซอื่น

ส่วนประกอบฟ้าผ่ามาตรฐานทั้งหมดอยู่นอกเนมสเปซของคุณ