Lightning Web Components, การส่งผ่าน DOM แบบ Lightning-datatable / Lightning-tree-grid [ซ้ำกัน]
ด้วย 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
คำตอบ
คุณไม่สามารถทำได้เนื่องจากบริการ Locker :
คอมโพเนนต์สามารถสำรวจ DOM และเข้าถึงองค์ประกอบที่สร้างโดยคอมโพเนนต์ในเนมสเปซเดียวกันเท่านั้น ลักษณะการทำงานนี้ป้องกันรูปแบบการต่อต้านการเข้าถึงองค์ประกอบ DOM ที่เป็นของคอมโพเนนต์ในเนมสเปซอื่น
ส่วนประกอบฟ้าผ่ามาตรฐานทั้งหมดอยู่นอกเนมสเปซของคุณ