Sim*_*ver 6 angular angular-ivy
更新到 Angular 9 / Ivy 编译器后出现错误
ERROR Error: Token InjectionToken XXXXXXXXX is missing a ?prov definition.
at injectableDefOrInjectorDefFactory (vendor.js:47105)
at providerToFactory (vendor.js:47210)
at resolveProvider$1 (vendor.js:56430)
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用undefined或显式覆盖继承的可注入对象,则可能会发生这种情况null。
在 Angular 8 中,这没问题
{
provide: AMBIENT_CART,
useExisting: undefined
}
Run Code Online (Sandbox Code Playgroud)
使用 Angular 9,它需要更改为
{
provide: AMBIENT_CART,
useValue: undefined
}
Run Code Online (Sandbox Code Playgroud)
如果你很好奇:在我的情况下,我这样做是出于安全原因,以确保我没有错误地使用这种特殊的注射剂。
小智 5
从 Angular 8 --> 9 升级后运行 ng test 时,我遇到了同样的错误:\n“错误:Token InjectionToken apiToken 缺少 \xc9\xb5prov 定义。”
\n\n我的解决方案非常简单——规范文件中有一个拼写错误,我猜这在 Angular 8 中无关紧要,但在 Angular 9 中却如此?下面的最后一个“useValue”实例被错误地写成了“usevalue”。这么莫名其妙的错误!
\n\nTestBed.configureTestingModule({ \n imports: [ HttpClientTestingModule ], \n providers: [ \n { provide: ApiService, useValue: apiService }, \n { provide: ProductsApiService, useValue: productsService }, \n { provide: apiToken, useValue: mockApiToken } \n ] \n});\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3805 次 |
| 最近记录: |