如何解决EventEmitter.emit不是函数
我有一个子组件,无论用户何时更改选择,我都使用primem插件中的下拉菜单将其值发送给父组件。我使用 EventEmitter.emit()函数发出类型为Solution的值。 Solution 是我定义的接口。
这是我定义发射器的方式:
@Output('solutionChange') selectedSolution: EventEmitter<Solution> = new EventEmitter<Solution>();
我是这样称呼发射器的:
public onSolutionChange(args) {
let solution: Solution = args.value as Solution;
this.selectedSolution.emit(solution);
}
问题是,当我调用 emit()函数时,它给出了错误 TypeError:发射不是函数。
我已经尝试将发射器的定义更改为@Output('solutionChange') selectedSolution: EventEmitter<any> = new EventEmitter<any>();
,因为 args.value 是来自后端的任何类型,但仍然是相同的错误。我还尝试过用next()函数替换embed()函数。
解决方法
很可能您导入了错误的EventEmitter
,这可以在IDE中自动发生,例如VS Code。它会尝试导入Node.js events
https://docs.python.org/3/library/struct.html,以确保从@angular/core
EventEmitter导入,如:
import { Output,EventEmitter } from '@angular/core';
希望有帮助!
,我设法解决了。我尝试解决了大约一个小时,当我以为没有其他选择时,我决定寻求帮助。这是我的错误,因为我不小心在HTML的NgModel中提供的参数,并且在从后端获取数据的服务中也使用了错误的参数。在问问题之前,我还检查了很多类型。 我之所以提出这个问题,是为了帮助其他可能犯同样错误的人。 感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。