首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子到父不工作的EventEmiter

从子到父不工作的EventEmiter
EN

Stack Overflow用户
提问于 2022-03-22 18:15:52
回答 2查看 214关注 0票数 2

我需要向父组件传递一个值(0),因此我按如下方式调用一个子组件:

代码语言:javascript
复制
<app-componentadduser [target]="target" *ngIf="opt==1" (newItemEvent)="changeOpt($event)"></app-componentadduser>

以及changeOpt的代码:

代码语言:javascript
复制
changeOpt(newItem: number) {
    console.log(newItem)
    this.opt = newItem;
  }

在儿童方面,

代码语言:javascript
复制
@Input() target: string;
  @Output() newItemEvent = new EventEmitter<number>();

然后,当一个按钮被点击,在一个进程发生之后:

代码语言:javascript
复制
this.newItemEvent.emit(0);

从父级开始,我甚至尝试console.log newItem (值为0),但是changeOpt从未被执行。

我不知道我错过了什么。我以为这和这件事有关,但事实并非如此。

谢谢。

更新:

Console.log正在抛出此错误:

TypeError: ctx_r9.changeOpt不是一个函数。(在“ctx_r9.changeOpt($event)”中,“ctx_r9.changeOpt”未定义)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-22 19:14:56

既然你只是在传递一个数字,那就试试

代码语言:javascript
复制
(newItemEvent)="opt=$event"
票数 1
EN

Stack Overflow用户

发布于 2022-03-22 19:17:17

首先,我不知道你在哪里叫this.newItemEvent.emit(0);

因此,这种方法有可能存在问题。例如,您应该在按钮或某些操作上调用它。其他一切似乎都很好,但也许我是瞎了。

无论如何,我用您的输出创建了stackBlitz示例,一切都正常。看一看。

示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71577060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档