TypeError: (0 , _slash(...).default) is not a function

TypeError: (0 , _slash(...).default) is not a function

当我尝试测试我的 angular 应用程序时,我收到此错误,原因不明 完整错误如下

TypeError: (0 , _slash(...).default) is not a function
      at viewWrappedDebugError (../../../packages/core/src/view/errors.ts:28:11)
      at callWithDebugContext (../../../packages/core/src/view/services.ts:638:11)
      at Object.debugCheckAndUpdateView [as checkAndUpdateView] (../../../packages/core/src/view/services.ts:346:10)
      at ViewRef_.detectChanges (../../../packages/core/src/view/refs.ts:261:16)
      at ComponentFixture._tick (../../../../packages/core/testing/src/component_fixture.ts:107:28)
      at ../../../../packages/core/testing/src/component_fixture.ts:120:36
      at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (../../node_modules/zone.js/dist/zone.js:391:26)
      at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (../../node_modules/zone.js/dist/proxy.js:129:39)
      at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (../../node_modules/zone.js/dist/zone.js:390:52)
      at Object.onInvoke (../../../packages/core/src/zone/ng_zone.ts:273:25)
      at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (../../node_modules/zone.js/dist/zone.js:390:52)
      at Zone.Object.<anonymous>.Zone.run (../../node_modules/zone.js/dist/zone.js:150:43)
      at NgZone.run (../../../packages/core/src/zone/ng_zone.ts:171:50)
      at ComponentFixture.detectChanges (../../../../packages/core/testing/src/component_fixture.ts:120:19)
      at src/app/projects/project-create/project-create.component.spec.ts:129:13
      at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (../../node_modules/zone.js/dist/zone.js:391:26)
      at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (../../node_modules/zone.js/dist/proxy.js:129:39)
      at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (../../node_modules/zone.js/dist/zone.js:390:52)
      at Zone.Object.<anonymous>.Zone.run (../../node_modules/zone.js/dist/zone.js:150:43)
      at Object.testBody.length (../../node_modules/jest-preset-angular/zone-patch/index.js:52:27)

声称生成错误的行在我看来完全合法 fixture.detectChanges(); 包含在我的 beforeEach 块中。

beforeEach(() => {
    AppConfig.settings = JSONConfig;
    fixture = TestBed.createComponent(ProjectCreateComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    el = fixture.nativeElement;
  });

我似乎找不到解决整个堆栈溢出问题的方法,而且我很确定我不是唯一遇到此问题的人。提前感谢您的帮助!

编辑 我还发现 console.log 经常导致此 TypeError 并且我已从组件

中删除所有控制台日志

出现错误是因为ProjectCreateComponent没有正确初始化。可以分享一下ProjectCreateComponent的初始化代码,方便大家查找issue。此外,在某些情况下,由于导入模块的方式不正确而发生此错误。

在四处寻找后,我找到了出现此错误的原因。我使用 (ngModel) 来跟踪用户输入,因此我可以动态填充对话框。那是导致错误的原因。如果您 运行 遇到此错误,请注意以下几点。

  • 删除或评论规范文件或 .ts 文件中的任何 console.logs
  • 如果您使用的是 formbuilder,请从您的表单中删除 (ngModel),而不是像这样使用 getter this.yourForm.get('formControlName').value;

如果您遇到任何引发此荒谬错误的罪魁祸首,请随时补充!