繁体   English   中英

@Output childEvent 未在组件中初始化

[英]@Output childEvent not initialized in component

我想在组件中设置 output 值。 为 output 编写此代码:

export class OutputComponentComponent implements OnInit {

      @Output() public childEvent = new EventEmitter();

      @HostListener('window:mousemove', ['$event'])
      onMouseMove(event: MouseEvent) {
         this.functinoOutput();
      }
        
     private functinoOutput() {
       this.childEvent.emit('value')
     }
}

我在appcomponent.html中使用这个组件

<app-ouput (childEvent)="showCordinate($event)"></app-ouput>

但它告诉我这个错误:

错误:@Output childEvent 未在“ResizableComponentComponent”中初始化。

有什么问题? 我怎么解决这个问题???

您是否尝试过声明标志?

export class OutputComponentComponent implements OnInit {
      initialized = false;
      @Output() public childEvent = new EventEmitter();
  @HostListener('window:mousemove', ['$event'])
  onMouseMove(event: MouseEvent) {
     if (this.inizialited) {
          this.functinoOutput();
     }
  }

ngOnInit(): void {
  this.inizialited = true;
}   

 private functinoOutput() {
   this.childEvent.emit('value')
 }
}

可选:尝试更好地声明 @Output

@Output() search: EventEmitter<ClassOrSomething> = new EventEmitter(false);

我认为您没有在 TS 文件中导入EventEmitter或从错误的库中导入该文件。 如果没有,请尝试下面给出的代码。

import { EventEmitter } from '@angular/core';

如果您使用import { EventEmitter } from 'events'; 那么请用我的替换你的导入。
注意:如果您仍然遇到问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM