3

我已经将一个小项目从 angular 6 升级到 8,现在我遇到了一个我不明白的错误。

  StaticInjectorError(Platform: core)[StoreRouterConnectingModule -> RouterStateSerializer]: 
    NullInjectorError: No provider for RouterStateSerializer!
    at NullInjector.get (http://localhost:4200/vendor.js:36416:27)
    at resolveToken (http://localhost:4200/vendor.js:36743:24)
    at tryResolveToken (http://localhost:4200/vendor.js:36669:16)
    at StaticInjector.get (http://localhost:4200/vendor.js:36532:20)
    at resolveToken (http://localhost:4200/vendor.js:36743:24)
    at tryResolveToken (http://localhost:4200/vendor.js:36669:16)
    at StaticInjector.get (http://localhost:4200/vendor.js:36532:20)
    at resolveNgModuleDep (http://localhost:4200/vendor.js:58166:29)
    at _createClass (http://localhost:4200/vendor.js:58243:32)
    at _createProviderInstance (http://localhost:4200/vendor.js:58199:26)

有人可以看看并给我一些指示。代码可以在这里找到。提前致谢!

4

2 回答 2

8

从 6 到 8,imports 语句StoreouterConnectingModule略有变化,您需要调用forRoot()ngrx docs here中给出的方法

代码示例:

import { StoreRouterConnectingModule, routerReducer } from '@ngrx/router-store';
import { AppComponent } from './app.component';

@NgModule({
  imports: [
    BrowserModule,
    StoreModule.forRoot({
      router: routerReducer,
    }),
    RouterModule.forRoot([
      // routes
    ]),
    // Connects RouterModule with StoreModule
    StoreRouterConnectingModule.forRoot(),
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}
于 2019-08-12T17:26:54.843 回答
2

我设法让它工作 - 艰难请注意解释问题性质的其他答案,而不仅仅是一个简单的“愚蠢”修复。

打开文件cards.module.ts并删除其冗余的导入StoreRouterConnectingModule 。它构建并完美运行。

不客气 :)

在此处输入图像描述

于 2019-06-26T13:43:02.190 回答