Javascript 将数据返回到分派事件的组件

Javascript 将数据返回到分派事件的组件,javascript,event-handling,polymer,dom-events,polymer-2.x,Javascript,Event Handling,Polymer,Dom Events,Polymer 2.x,我有一个嵌套很深的web组件,用于发送包含数据的事件: this.dispatchEvent(new CustomEvent('do-something', { bubbles: true, composed: true, detail: { itemId: itemId } })); 我希望有条件地在父元素中处理事件.detail,然后将数据返回给发送事件的组件 目前,我正在通过id声明性地从父节点中选择子节点,并通过多个函数向下传递数据 passDataToFirs

我有一个嵌套很深的web组件,用于发送包含数据的事件:

this.dispatchEvent(new CustomEvent('do-something', {
  bubbles: true,
  composed: true,
  detail: {
    itemId: itemId
  }
}));
我希望有条件地在父元素中处理
事件.detail
,然后将数据返回给发送事件的组件

目前,我正在通过
id
声明性地从父节点中选择子节点,并通过多个函数向下传递数据

passDataToFirstChild() {
  this.$.firstChildNode.property = this.dataComputedByParent.
}

有没有办法缩短这个过程

我看到事件对象有一个
path
属性,但我没有看到一个明显的方法将该数组集成到一个将子节点和父节点连接在一起的解决方案中


那么,有没有一种方法可以直接将嵌套较深的子节点与父节点连接起来,通过事件来回传递数据?

在事件详细信息中,您可以发送发送事件的节点的引用

this.dispatchEvent(new CustomEvent('do-something', {
  bubbles: true,
  composed: true,
  detail: {
    itemId: 'item id', 
    dispatcher: this
  }
}));
某个父对象中的侦听器

this.addEventListener('do-something', (e) => {
    e.detail.dispatcher.property = this.dataComputedByParent;
})

因此,这个方法似乎将一个对象作为属性附加到事件中,但我不理解数据是如何传回DOM树的。事件对象是否存储在调度它的节点的内存空间中?
this.addEventListener('do-something', (e) => {
    e.detail.dispatcher.property = this.dataComputedByParent;
})