问题标签 [ngxs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
212 浏览

google-chrome - 当检查器打开但 * 不 * 分析时,Chrome 中的网页真的很慢

在我的 Angular 应用程序中,在引入了更多 ngxs 的使用后,我看到我的应用程序在检查器打开时变得非常慢,但在分析器运行时却没有

这使得弄清楚发生了什么有点困难,但是使用旧conosle.profile方法(向 Chrome 的旧分析器添加一个条目),我已经缩小了一点 - 但我现在并没有比我更了解情况是 - 只是更困惑。

所以在这里希望有人可以帮助我!

我有一些分析的截图要分享,但不幸的是没有太多其他的。

首先,来自配置文件图表的屏幕截图: 在此处输入图像描述 如您所见,有很长一段时间,显然没有真正发生任何事情。请注意,在控制台中,底部方法 ( startObserving) 只需要 0.12 毫秒(根据console.time

沿着树向上走几步,我们发现Handsontable- 这就是函数的样子,以及一些相关的时间:

看起来Handsontable构造函数/函数中调用的 2 个方法的总运行时间 <1500 毫秒,但总执行时间超过 52

在我看来,这大约 50 秒的空闲时间里会发生什么?

非常欢迎任何帮助,提示,建议,帮助更好地调试!

注意:在 Firefox 中,这不是问题。我也尝试过 Chromium 67、68 和 69 - 同样的问题。这是跨所有平台的 Chrome 的问题(在 Windows 10、Ubuntu 16,17 和 MacOS latest-1,latest 中测试)

0 投票
2 回答
1259 浏览

angular - Angular 5:NGXS 和路由解析器

是否可以使用 NGXS 存储用户路由解析器?

我有一个这样的测试,但我不知道这是否是正确的方法:

当我尝试这个时,应用程序只是挂起。没有显示错误。

欢迎大家帮忙。谢谢

0 投票
1 回答
231 浏览

angular - Angular/NGXS 示例代码 - 无法获取参数输入的引用

我正在尝试实现此处提到的登录。

https://ngxs.gitbook.io/ngxs/recipes/authentication

但是我无法获得示例中所示的“有效负载”的引用,而是出现以下错误。任何帮助表示赞赏!我还想知道函数的输入参数中的 '{ payload: { username } }' 是什么意思。

在此处输入图像描述

0 投票
1 回答
3920 浏览

angular - 在 Angular 6 中,我在组件中收到错误“NullInjectorError: No provider for Store”

这个简化的组件调度一个操作来将数据保存到存储中:

它总是带来错误NullInjectorError: No provider for Store!

奇怪的是,我在应用程序的另一个组件中有相同的代码,而且它工作没有任何问题!

任何想法?

0 投票
0 回答
429 浏览

ngxs - 使用子状态测试 NGXS 状态会将错误的状态输入到动作处理程序中

设置:

我有一个父状态定义为

一个子状态定义为

请注意,两个州都对Action1.

在生产中运行它时,它可以正常工作。加载状态负责 LoadingStateModel,而 ParentState 负责 ParentStateModel。

但是在对代码进行单元测试时,ParentState 中的操作处理程序被提供给 LoadingStateModel 而不是 ParentStateModel(参见代码中的注释)。

我的单元测试设置如下

如果我没有在导入数组中包含 LoadingState,NGXS 会失败Child state not found: function LoadingState()

我做错了什么,还是NGXS中的一个错误?

0 投票
1 回答
237 浏览

angular - NGXS - 在 actions$ 流中处理动作生命周期

在我的一种状态下,我不能使用@Action(...)注释,所以我想改用 actions$ 流,就像这样

不幸的是,控制台中的日志看起来像“DISPATCHED”、“SUCCESS”然后是“DONE”。有没有办法在使用 actions$ 流时处理动作生命周期?还是我应该走“旧”的方式,然后使用专门的MyAsyncActionSuccess行动来处理这种情况?

0 投票
1 回答
725 浏览

angular - 如何将服务注入必须在 Angular 7 中的应用程序模块中实例化的类中?

我在一个项目中使用 ngxs,我想使用 ngxs 记录器插件,但我想覆盖记录器本身,以便能够登录到后端。为此,我需要在我的记录器类中注入我的 RestService,但我无法这样做。我看到了多个问题,询问如何将服务注入普通类,但这些情况并不能真正回答您必须在应用程序模块中手动实例化类的情况。这个这个这个都是这样的答案,这些答案对我没有帮助,或者我没有掌握他们的知识。

这是我的应用程序模块导入中的内容:

这是我的记录器类:

我不能直接传递休息服务的实例,因为我必须传递一连串的依赖关系。我也尝试使用注入令牌并添加{ provide: LOGGER_INJECTION_TOKEN, useClass: RestService }到提供程序,但我达到了同样的目的。我不知道如何Logger在不必传递这些我没有的参数的情况下实例化该类。

这甚至可能吗?如果没有,我该怎么做?我希望能够使用 ngxs 记录器来存储操作日志,而不是在组件中创建自定义日志记录,但为此我需要记录器能够使用我的休息服务。

0 投票
1 回答
1594 浏览

angular - NGXS:测试分派的动作不适用于 ofActionDispatched

我正在尝试测试动作调度,但它在我的测试中不起作用......组件表现良好,动作已调度,但 actions$.pipe 没有捕捉到动作,因此无法在测试。

代码:

谢谢!

0 投票
1 回答
367 浏览

local-storage - 如何更改存储插件的默认 @@STATE 键

我用来@ngxs/storage-plugin将应用程序状态同步到本地存储。序列化状态的默认存储键是@@STATE,有没有办法重命名默认键?

我注意到在调用时NgxsStoragePluginModule.forRoot,我可以使用key选项来更改一部分状态的存储键,但是当我尝试存储整个状态时它不起作用

0 投票
4 回答
1995 浏览

ngxs - 如何从 NGXS 商店获取以前的状态

在 NGXS 中,我们有 getState() 来获取当前状态。有没有办法从商店获取以前的状态?我正在寻找解决方案,因为我必须实现 Undo/Redo 类型的功能。谢谢!