오류 발생: @출력이 초기화되지 않음
저는 관리자들이 그들의 팀을 추적할 수 있도록 각도가 있는 앱을 만들고 있는데, @Output 오류로 꼼짝 못하고 있습니다.
An error occurred: @Output deleteMeeting not initialized in 'MeetingItemComponent'.
미팅 구성요소가 있어 미팅 항목 구성요소 목록을 생성합니다.사용자가 다른 버튼(편집, 삭제, 세부 정보 표시)을 클릭할 때 작업을 수행하려고 합니다.
다음은 나의 부모님 모임 템플릿입니다.
<div class="meeting__list" [@newMeeting]="meetings.length">
<app-meeting-item
*ngFor="let meeting of meetings"
[meeting]="meeting"
(deleteMeeting)="deleteMeeting($event)"
(openMeetingDialog)="openMeetingDialog($event)"
(messageClick)="openMessage($event)"
></app-meeting-item>
</div>
내 미팅 항목 템플리트(이 게시물과 관련된 부분만 해당):
<span class="meeting__actions">
<mat-icon *ngIf="meeting.message" (click)="onMessageClick(meeting)" matTooltip="Read the message"
matTooltipPosition="above" class="icon--notes">notes</mat-icon>
<mat-icon (click)="onOpenMeetingDialog(meeting)" matTooltip="Edit this meeting" matTooltipPosition="above" class="icon--edit">edit</mat-icon>
<mat-icon (click)="onDeleteMeeting(meeting.id)" matTooltip="Delete this meeting" matTooltipPosition="above" class="icon--delete">delete_outline</mat-icon>
</span>
내 모임 항목 구성요소:
import { Component, Input, Output } from '@angular/core';
import { EventEmitter } from 'events';
@Component({
selector: 'app-meeting-item',
templateUrl: './meeting-item.component.html',
styleUrls: ['./meeting-item.component.scss']
})
export class MeetingItemComponent {
@Input() meeting;
@Output() deleteMeeting = new EventEmitter();
@Output() openMeetingDialog = new EventEmitter();
@Output() messageClick = new EventEmitter();
constructor() {}
onDeleteMeeting(meetingId) {
this.deleteMeeting.emit(meetingId);
}
onOpenMeetingDialog(meeting) {
this.openMeetingDialog.emit(meeting);
}
onMessageClick(meeting) {
this.messageClick.emit(meeting);
}
}
당신의 코드가 스택 블리츠에서 작동하도록 하기 위해, 나는 교체해야 했습니다.
import { EventEmitter } from 'events';
와 함께
import { EventEmitter } from '@angular/core';
같은 오류가 있었습니다.
가져오기가 다음과 같이 정확했습니다.
import { EventEmitter } from '@angular/core';
그러나 변수 정의가 잘못되었습니다.
@Output() onFormChange: EventEmitter<any>;
해야 할 일:
@Output() onFormChange: EventEmitter<any> = new EventEmitter();
저는 수입할 때도 같은 문제를 겪었습니다.@angular/core
.
문제:초기화하고 있었습니다.EventEmmitter
의 반대 의견ngOnInit
메서드를 사용할 수 있습니다.솔루션:초기화를 구성 요소의 클래스 생성자로 이동했습니다.
저도 같은 오류가 있었습니다.VS Code의 Auto Import 확장이 이를 수행했다는 것을 확인했습니다. import * as EventEmitter from 'events';
대신 가져옵니다.import { EventEmitter } from '@angular/core';
그러니 수입품이 괜찮은지 아닌지 확인하세요.
구성 요소에서 코어 각도 모듈을 사용합니다.이 코드를 파일의 시작 부분에 넣기만 하면 됩니다.
import { EventEmitter } from '@angular/core';
가져오기 변경:import { EventEmitter } from 'events';
포함:import { EventEmitter } from '@angular/core';
나의 경우 'events'에서 Import {EventEmitter}을(를) 아래로 변경하면 작동합니다.
로.
import { Component, Output ,EventEmitter} from '@angular/core';
@Output() isAbout: EventEmitter<boolean> = new EventEmitter();
이 구문은 이벤트 이미터의 인스턴스가 필요한 전체 구문이어야 합니다.
언급URL : https://stackoverflow.com/questions/53640116/an-error-occurred-output-not-initialized
'source' 카테고리의 다른 글
Git의 "우리가 병합할 수 있는 항목이 아닙니다" 오류를 해결하는 방법 (0) | 2023.05.02 |
---|---|
Mongodb가 중첩된 하위 문서 업데이트 (0) | 2023.05.02 |
이클립스, 현재 디버그 라인 배경을 변경할 위치는 어디입니까? (0) | 2023.05.02 |
에 중복된 키가 있습니다.NET 사전? (0) | 2023.05.02 |
ReSharper의 대안은 무엇입니까? (0) | 2023.05.02 |