我已经开始在 Angular 9 中使用新的延迟加载组件。我有一个使用 NGXS 的有状态组件,其状态被延迟加载到组件附近的模块中,但是一旦组件呈现,存储不会更新为新状态。
功能模块
@NgModule({
imports: [
NgxsModule.forFeature([PurchaseState]),
SharedModule,
FormsModule,
GridModule,
PurchasesApiModule,
SidePanelCoreModule
],
declarations: [PurchaseDetailsPageComponent, PurchaseDetailsFormComponent, PurchaseDetailsAllotmentListComponent],
})
export class PurchaseDetailsModule {
constructor() {
console.log('PURCHASE CONSTRUCTED')
}
}
动态组件加载器
async getComponent(key: string) {
const lazyComp = await import('@pe/purchase-details').then(c => c.PurchaseDetailsPageComponent);
const factory = this.componentFactoryResolver.resolveComponentFactory(lazyComp);
this._component = this.content.createComponent(factory, null, this.injector);
}
诸如GridModule
(仅在此处声明)之类的东西可以正常工作,但是我猜模块加载的提供程序部分没有运行?
有没有人遇到过这样的事情?
我尝试在本文中描述的组件 .ts 文件中包含状态的模块声明,但没有骰子:(