问题标签 [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 回答
824 浏览

ngxs - 如何使用 ngxs 创建动态子存储或子状态

我创建了一个模块来管理我的 CRUD 脚手架。我目前定义了一个上下文,我根据路由器中的 URL 为我的所有“集合”定义。即:#/posts/admin 告诉我收藏是帖子,而我的脚手架是列表 #/posts/admin/edit/xxxx 是用于编辑帖子 xxxx 的脚手架。对于每种类型的脚手架,我定义了字段和操作列表。它工作正常,但我想用 NGXS 的状态替换。

我的想法是为每个脚手架屏幕定义一个基本状态,然后为每个集合创建一个子状态。

您如何创建一个可以通过自己的一组操作进行扩展的状态。

0 投票
1 回答
437 浏览

ngxs - 状态基类中的记忆选择器指南

我对 NGXS Store 和@Selector()状态类层次结构中 memoized 的使用有疑问。

下面描述的问题的推荐方法是什么?NGXS Store 文档没有提供这方面的指南/建议。

鉴于此示例状态设置,





当让这段代码运行时,它会打印出来,undefined因为方法的state参数dataSelect(...)不会被设置。

我追踪到BaseState不是 NGXS 状态的原因,因此缺少一个内部NGXS_META 属性,这反过来又导致了undefined争论。添加BaseState到选择器(例如@Selector([BaseState]))以强制仍然包含状态也不会产生预期的效果,因为现在 NGXS 无法导航到匹配的状态切片。

@Selector(...)我找到了两种方法来使这项工作按需要进行: 1.在每个派生状态实现中复制该方法。这虽然违背了最初设计状态类层次结构的原因。@DerivedSelector(...)2.根据标准装饰器使用类似的东西,但会为每个遇到的派生状态类动态创建选择器。

谢谢你。

0 投票
1 回答
514 浏览

ngxs - 状态下嵌套对象的变化检测

假设我们有一个具有以下结构的状态:

变更检测如何工作?如果我做改变

以下 observable 都不会发出值:

我不是 rxjs 编程方面的专家,但看起来很奇怪,有什么想法吗?

0 投票
1 回答
1739 浏览

angular - NGXS - 从父状态访问子状态

我有亲子状态:

然后在父状态的一个动作中,我想从孩子那里得到状态。有没有办法如何在动作处理程序中做到这一点,此时我看不到如何做到这一点,因为动作处理程序具有唯一的StateContext动作有效负载?

0 投票
2 回答
2166 浏览

angular - 当一个动作被派发时做某事

假设我们是一个 action SyncUserData,它返回监听数据库变化的 observable。每当有变化时,动作就会调度动作new PatchUserData(newData)

SyncUserData动作是从ngxsOnInit状态中调度的(仅一次)。

在不同的部分(例如,组件)中,我想在动作PatchUserData调度时做一些事情。像这样的东西:

我在源代码中查找了一下,但没有找到与我的示例类似的内容。

0 投票
1 回答
74 浏览

javascript - Firebase 在 NGXS 操作中使用 signInWithEmailAndPassword 时忽略 catch/then

我有一个通过电子邮件和密码登录用户的操作:

每当提交登录表单时,我都会发送此操作:

操作处理程序从状态中获取电子邮件和密码并调用firebase.auth().signInWithEmailAndPassword,如下所示:

由于某种原因,catch被忽略了console.log,应该打印的东西也被忽略了。

我尝试在州外运行此方法,它似乎有效。虽然,我想把这个逻辑放到我的行动中。

PS:

如果我使用signInWithPopup(provider)而不是signInWithEmailAndPassword,那么它将起作用(但这不是我需要的)。

0 投票
2 回答
20740 浏览

typescript - 什么是角度状态管理?我为什么要使用它?

我是 Angular 的新手,这个问题可能非常广泛。但我有兴趣了解更多关于状态管理的使用。最近我们的一个项目使用 NGXS 库实现了状态管理。但是我想了解它为应用带来的所有优势是什么?

实现非常深入和高级,有一些动作携带应用程序数据(由用户设置)和侦听那些处理请求并根据需要分派到下一步的动作的侦听器。这在应用程序使用或性能等方面与一般角度应用程序有何不同。我正处于理解状态管理的开始阶段,所以我觉得我正在编写很多可能并不真正需要的代码。示例 - 只是为了路由到另一个页面,我必须实现一个状态模式来保存对象并声明一个动作和一个侦听器来实现该动作。

我正在阅读几个文档并获取有关如何实施状态管理的详细信息,但没有得到为什么应该实施状态管理的正确答案。

先感谢您!

0 投票
1 回答
316 浏览

angular - NGXS - 在 switchMap 中返回(任何)时提供了无效对象

我有一个从 firebase 的 authState 用户获取的操作。如果用户存在,则代码返回与用户相关的文档。如果没有,of(null)将被退回:

类 AuthState

类 AuthService

看起来很简单,对吧?好吧,除非你的 Redux Devtools 插件打开(是的,我知道这很奇怪),否则它不会工作。

当我想在 switchMap 运算符中返回具有任何类型(例如数字、字符串、null 甚至未定义)的值的 observable 时,我收到以下错误:

未捕获的类型错误:您在预期流的位置提供了无效对象。您可以提供 Observable、Promise、Array 或 Iterable。(zone.js:192)

有问题的行在我的AuthState课上:

但是,如果我删除of运算符并返回authService.auth$observable 的结果(返回of(null),那么错误就消失了:

0 投票
1 回答
638 浏览

redux - NGXS 是否像 redux-undo 一样支持 undo

我正在考虑向我的网络应用程序添加状态管理。我正在使用 Angular 6。我看过这个库,看起来很有希望: https ://github.com/angular-redux/store

但我同意 NGXS 的作者的观点,即装饰器可能是正确的方法。我还想将 undo-redo 添加到状态管理中,似乎 angular-redux 与 redux-undo 有这个: https ://github.com/omnidan/redux-undo

NGXS 中是否有与此等价的功能?(我不需要花哨的东西)

我需要手动编写吗?

0 投票
1 回答
823 浏览

angular - 如何在 ngxs 中订阅元选择器(组合状态选择器)?

我查看 NGXS 官方页面上的文档:https ://ngxs.gitbook.io/ngxs/concepts/select#meta-selectors

我想检索多个状态的状态,因此必须使用他们提出的方法:

你如何正确使用这个选择器?如何在组件内触发它,可能通过 Observables 和订阅?

我正在使用 NGXS 最新版本。