我刚刚开始潜入一些基本的Angular 4,我一直在听一个emits 的事件.这里有一个非常简单的例子重现了这个问题(至少在我这边):

DateSenderComponent是"广播"当前日期,然后由其母公司AppComponent处理(见下文):

import { Component, Output } from '@angular/core';
import { EventEmitter } from "events";

@Component({
  selector: 'app-date-sender',
  template: '<button (click)="sendDate()">Send</button>'
})

export class DateSenderComponent {
  @Output() dateSent = new EventEmitter();

  sendDate(){
    var dt = new Date();
    console.log(dt);
    this.dateSent.emit(dt.toString());
  }
}

AppComponent应该收听广播的日期事件:

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

@Component({
  selector: 'app-root',
  template: '<app-date-sender (dateSent)="dateReceived($event)"></app-date-sender>'
})

export class AppComponent {
  dateReceived(value){
    console.log('Result: ', value);
  }
}

从各种初学者教程中,我发现这是一种聆听事件的方式.然而,在加载页面时,我没有打印接收日期值,而是出现以下错误:

应用组件.html:1错误类型错误:实例[output.propName].订阅不是一种功能

在createDirectiveInstance(core.es5.js:10727)

在createViewNodes(core.es5.js:12086)

在callViewAction上(core.es5.js:12530)

在ExecuteComponentViewsAction(core.es5.js:12439)

在createViewNodes(core.es5.js:12113)

在createRootView(core.es5.js:11991)

在callWithDebugContext(core.es5.js:13206)

反对.debugCreateRootView[作为createRootView](core.es5.js:12666)

在组件工厂.创建(core.es5.js:9912)

在ComponentFactoryBoundToModule.创建(core.es5.js:3448)

不幸的是,我找不到任何关于这到底意味着什么的信息,我自己也无法理解.

有一件事似乎是一个提示:当我更改AppComponent模板以侦听某个不会在任何地方发出的事件(例如<app-date-sender (someStringSent)="dateReceived($event)"></app-date-sender>)时,错误就会消失.因此,实际的输出事件和监听它的模板之间似乎存在联系,这似乎是问题的原因.

谁能给我指出正确的方向吗?

推荐答案

EventEmitter应该来自'@angular/core'

我在你的代码中看到它来自'events'.

你确定你使用的是正确的对象吗?

Typescript相关问答推荐

如何传递基于TypScript中可变类型的类型?

具有映射返回类型的通用设置实用程序

我应该使用什么类型的React表单onsubmit事件?

在配置对象上映射时,类型脚本不正确地推断函数参数

异步动态生成Playwright测试,显示未找到测试

根据另一个属性的值来推断属性的类型

TypeScrip-将<;A、B、C和>之一转换为联合A|B|C

TypeScrip:逐个 case Select 退出noUncheck kedIndexedAccess

React Typescript项目问题有Redux-Toolkit userSlice角色问题

如何将TS泛型用于react-hook-form接口?

为什么我的导航在使用Typescript的React Native中不起作用?

自定义 Select 组件的类型问题:使用带逗号的泛型类型<;T与不带逗号的<;T&>;时出错

tailwind css未被应用-react

使用Type脚本更新对象属性

使用来自API调用的JSON数据的Angular

编剧- Select 动态下拉选项

任何导航器都未处理有效负载为";params";:{";roomId";:";...";}}的导航操作

仅当定义了值时才按值筛选数组

如何从联合类型推断函数参数?

如何在Typescript 中定义具有相同类型的两个泛型类型的两个字段?