首页 > 解决方案 > 即使导入并声明了Angular 8,也无法从模块中导出组件

问题描述

我正在开发一个应用程序,其中我有一个 SharedUiModule 包含将在应用程序的其他部分中使用的所有组件(和服务)。

现在我想从 SharedUiModule 中导出我的 ModalComponent(重命名为 PopupComponent),这样我就可以通过导入 SharedUiModule 在其他模块中重用它。

问题是,在 SharedUiModule 中,即使在导入 PopupComponent 并声明它之后,当我想导出它时,我也会收到以下警告:“无法从 SharedUiModule 导出 PopupComponent,因为它既没有声明也没有导入其中”。花了几个小时在互联网上搜索,但找不到任何类似的问题。

我的 IDE 是 Intellij。这是我的 SharedUiModule 的样子:

import {CommonModule} from '@angular/common';
import {MatDialogModule, MatFormFieldModule, MatIconModule, MatListModule} from "@angular/material";
import {PopupComponent} from "./popup/popup.component";

@NgModule({
  imports: [
    CommonModule,
    MatListModule,
    MatIconModule,
    MatFormFieldModule,
    MatDialogModule,
  ],
  declarations: [
    PopupComponent
  ],
  exports: [
    PopupComponent <= "Cannot export PopupComponent from SharedUiModule as it is neither declared nor imported in it"
  ],
  entryComponents: [PopupComponent]
})
export class SharedUiModule {}

标签: modal-dialogcomponentsexportangular8

解决方案


一位工作伙伴告诉我尝试以与导入组件相同的方式导出组件并且它可以工作!现在我不明白为什么这种方式有效,而导出属性应该完成工作(我的同事也没有任何解释)

import {PopupComponent} from "./popup/popup.component";
export {PopupComponent};

推荐阅读