错误:NG0203:inject() 必须从注入上下文调用,例如构造函数、工厂函数、字段初始值设定项或使用的函数

问题描述 投票:0回答:3

设置:

  1. MongoDB(Atlas 或本地)
  2. 后端:NestJS、OAS、使用 swagger-codegen 打包“后端客户端”......
  3. Angular 15 + Material Design + Ngrx(存储 + 效果)

最近我使用 Ngrx 添加了状态管理工作,当我添加 EffectsModule 时,我收到此错误:

错误:NG0203:inject() 必须从注入上下文调用,例如构造函数、工厂函数、字段初始值设定项或与

EnvironmentInjector#runInContext
使用的函数。

将 EffectsModule 添加到app.module.ts

的导入(第 36 行)时开始出现问题

我将继续对此进行研究,并感谢任何想法或见解。根据这篇文章 (1),该错误似乎是通用的。我对如何追寻这一点的想法持开放态度。

复制环境所需的回购分支:

  1. Angular 客户端
  2. 后端API

我遇到过的其他SO文章:

  1. Angular 升级 - 错误:必须从injectInjectorOnly 的注入上下文调用inject()
  2. 在 ionic 项目中使用 Angular 库时,必须从注入上下文调用
  3. inject()

导致错误更改为:NullInjectorError:NullInjectorError:没有Store提供程序!

  1. openapi-generator-cli 生成的服务不可注入

最新:

我怀疑由 openapitools/openapi-generator-cli 生成的打字稿在包含 ngrx 工作时不再足够。我确实在 生成器列表 中找到了 typescript-angular 生成器,并将尝试一下...

angular nestjs swagger-codegen ngrx-effects
3个回答
2
投票

问题可能出在几个方面。具体来说,正确设置模块。 这篇文章很有用,指出我没有正确设置和引用 API 包。

特别是“使用示例”标题下的部分,其中代码显示如下:

import { PostsService } from './core/api/v1';

因此,我在运行 openapi-generator 时更改了输出 arg 的路径。我没有使用

npm link
,而是直接引用了输出。


0
投票

我在 Chrome 控制台日志中遇到了同样的错误。我创建了一个角度库并将其导入到现有的角度应用程序中。我使用

npm install C:/...dist/myapp
来安装库。

我的应用程序在 angular.json 中丢失:

projects/myapp/architect/build/options/preserveSymlinks: true

将preserveSymlinks更改为true后,重新安装,我不再遇到上述错误。


0
投票
// Import your router with inject function :
const router = inject(Router) ;
© www.soinside.com 2019 - 2024. All rights reserved.