我知道这已被多次解决(过去的大问题但应该用4.0修复)并且ngrx示例应用程序也使用延迟加载但是init
未被多次调用。尽管如此,这个非常简单的设置(使用示例应用程序的许多组件)会导致init被调用两次,一次用于AppModule
,一次用于延迟加载Module1Module
。 Module2Module
并非延迟加载并且效果很好。
最小的repro repo over here或stackblitz repro。
有人能够对这种行为有所启发吗?
编辑:在我正在处理的应用程序中,触发了这个问题,我注意到,对于每个新的init,整个行动历史似乎再次被发送。由于应用程序尚未连接到API,因此除了在控制台中之外,这不是很明显。如果将其连接到API,则意味着安静一些不必要的调用......答案 0 :(得分:0)
我知道问了这已经有很长的时间了,但是如果有人像我一样发现自己在这里,
在我们的例子中,我们使用的是ngxs,并且@@ Init被多次校准,因为我们有一个共享模块
imports: [
NgxsModule.forRoot([
MyState,
MyState2
]
然后将该模块导入其他模块中。
按照ngxs文档中的说明将NgxsModul.forRoot(...)声明移动到app.module.ts后,它可以正常工作。