NullInjectorError:没有提供叠加层! NgxToastr

时间:2020-08-11 14:45:17

标签: javascript angular typescript angular-services ngx-toastr

这一天来我一直在挠头。我在我的角度应用程序中使用Ngx-Toastr软件包。以下是我认为可以帮助您理解问题的要点。

  1. 在开发服务器(ng服务)中,我没有遇到任何错误,没有Nullinjector问题,然后我使用以下命令进行了生产构建(ng build)。到目前为止,一切正常。现在,我需要优化捆绑包的大小,以便运行该文件(ng build --prod)。构建成功,没有错误现在是时候提供代码了(我正在使用Node服务器来实现)。问题开始了-

  2. 首先是要

“ NullInjectorError:没有ToastrService的提供程序”

本身来自Ngx-Toastr软件包,这很有意义,因此我将该服务添加到了appmodules以及providers数组中的其他Lazy加载模块中。因此,此错误已消失。但是接下来是我想谈的-

  1. 接下来,它询问“ NullInjectorError:没有提供叠加层的提供者!”因此,尽管我必须从包中获得此服务,但需要将其添加到providers数组中。因此,我尝试从自身包装中导入它,并将其添加到provider数组中,如下所示:

从'ngx-toastr / overlay / overlay'导入{覆盖};

这样做得到了以下错误

未找到模块:错误:无法解析'ngx-toastr / overlay / overlay'

  1. 接下来,我尝试搜索此问题,并找到了一些建议添加以下内容的stackoverflow解决方案:

从'@ angular / cdk / overlay'导入{OverlayModule};

我在每个模块的imports数组中添加了此模块。什么都没改变。

现在我不知道要导入什么以及在哪里导入。而且我也不知道我是对还是错,或者应该从哪里开始研究。我也怀疑这个错误是来自那个软件包或什么!原因它应该在不隐式导入那些服务的情况下工作。

我运行以下命令以在生产构建之前获取错误:

ng serve --prod --optimization = false

也请提及如何调试以下错误,在生产构建后的某个时候,我们会收到像这样的错误,这毫无疑问毫无道理:

错误错误:“ StaticInjectorError [t-> t]: StaticInjectorError(平台:核心)[t-> t]: NullInjectorError:没有t的提供者!”

我希望我的解释对您有意义。感谢您的宝贵时间,对于这个冗长的问题,我们深表歉意。

最后,仅供参考:我已经删除了节点模块并重新安装。

1 个答案:

答案 0 :(得分:1)

确保您使用的ngx-toastr版本与您的angular和Typescript版本兼容。 https://github.com/scttcper/ngx-toastr#dependencies

ngx-toastr v13要求角度> = 10