Angular 15升级至16后CoreModule引入StoreRootModule报错求助
问题解决:Angular 16升级后StoreRootModule导入报错
问题原因
Angular 16对NgModule的imports数组类型检查更加严格,不允许在imports中嵌套数组。你的代码中生产环境下直接返回了空数组[],导致Angular无法正确识别导入的模块类型,进而抛出StoreRootModule相关的错误。
解决方案
修改CoreModule中的imports数组,使用扩展运算符(...)展开条件返回的数组,确保所有导入的模块都处于imports的顶层数组中:
imports: [ CommonModule, StoreModule.forRoot(appReducers, { metaReducers: [storageMetaReducer] }), EffectsModule.forRoot(appEffects), StoreRouterConnectingModule.forRoot({ stateKey: 'router' }), ...(!environment.production ? [StoreDevtoolsModule.instrument()] : []) ]
这样调整后,无论是开发环境还是生产环境,导入的模块都会被正确解析,不会再出现嵌套数组的问题,控制台的报错也会消失。
内容的提问来源于stack exchange,提问作者JaNith RathNayaka
相关产品推荐
相关产品推荐

