【Angular】No component factory found for ×××.

报错现象:

用modal打开某个组件页面时报错

报错:No component factory found for UpdateAuthWindowComponent. Did you add it to @NgModule.entryComponents?

原因:

使用loadChild模式加载对应路由下的组件时,是懒加载模式,即需要的时候才会加载,所以如果路由走的是懒加载模式,需要的module即使在app.module中引入过了,依旧需要再引入一次

解决方案:

在app.module 的entryComponents 再导入一次

参考资料:https://blog.csdn.net/qq_34829447/article/details/89224634

延伸知识

AppModule

imports 本模块声明的组件模板需要的类所在的其它模块。

providers 服务的创建者,并加入到全局服务列表中,可用于应用任何部分。

declarations 声明本模块中拥有的视图类。Angular 有三种视图类:组件、指令和管道。

exports declarations 的子集,可用于其它模块的组件模板。

bootstrap 指定应用的主视图(称为根组件),它是所有其它视图的宿主。只有根模块才能设置 bootstrap 属性。

参考资料:https://blog.csdn.net/it_rod/article/details/79188921

Angular入口组件(entry component)和声明式组件的区别:

参考资料:https://majing.io/posts/10000004561171