事件发射器模板未定义

Event emitter stencil undefined

我正在基于 React 使用模板构建 Web 组件。 该值已发出,但在我调用时在组件上显示未定义。

  @Event() newModuleClicked: EventEmitter<any>;

  handleClick(e) {
    this.newModuleClicked.emit(e); //data is coming here when clicked
  }



   <ul class="portal-navigation__scrollable">
            {this.dataNavigation.map((item) => (
              <li key={item.id} onClick={() => this.handleClick(item.Name)}>
               {item.Name}
              </li>
            ))}
          </ul>

我调用的组件显示未定义

  <navigation
    [dataNavigation]="data"
    (newModuleClicked)="onChange($event)"
  ></navigation>

  onChange(ev: any) {
    console.log('got data', ev.target.value); //undefined 
  }

您传递给 .emit() 的值将在 Stencil 组件发出的 CustomEventdetail 属性 中。因此,要获得实际名称,只需将您的事件处理程序重写为:

onChange(ev: any) {
    console.log('got data', ev.detail);
}

您还可以为事件提供更具体的 CustomEvent<any> 类型(any 派生自 EventEmitter<any> 的事件声明):

onChange(ev: CustomEvent<any>) {
    console.log('got data', ev.detail);
}