我需要向父组件传递一个值(0),因此我按如下方式调用一个子组件:
<app-componentadduser [target]="target" *ngIf="opt==1" (newItemEvent)="changeOpt($event)"></app-componentadduser>以及changeOpt的代码:
changeOpt(newItem: number) {
console.log(newItem)
this.opt = newItem;
}在儿童方面,
@Input() target: string;
@Output() newItemEvent = new EventEmitter<number>();然后,当一个按钮被点击,在一个进程发生之后:
this.newItemEvent.emit(0);从父级开始,我甚至尝试console.log newItem (值为0),但是changeOpt从未被执行。
我不知道我错过了什么。我以为这和这件事有关,但事实并非如此。
谢谢。
更新:
Console.log正在抛出此错误:
TypeError: ctx_r9.changeOpt不是一个函数。(在“ctx_r9.changeOpt($event)”中,“ctx_r9.changeOpt”未定义)
发布于 2022-03-22 19:14:56
既然你只是在传递一个数字,那就试试
(newItemEvent)="opt=$event"发布于 2022-03-22 19:17:17
首先,我不知道你在哪里叫this.newItemEvent.emit(0);
因此,这种方法有可能存在问题。例如,您应该在按钮或某些操作上调用它。其他一切似乎都很好,但也许我是瞎了。
无论如何,我用您的输出创建了stackBlitz示例,一切都正常。看一看。
https://stackoverflow.com/questions/71577060
复制相似问题