Ngrx 模式在从服务器获取新数据时设置属性 IsLoading

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

我有一个包含操作、效果、减速器和选择器的商店。我在屏幕上有一个组件,该组件代表一个商店对象,通过选择器获取。

我认为,我想做的是 1 个行动做 2 件事。当用户更新对象时,我想调度一个操作来更新存储对象,以将 isLoading 属性设置为 true(这将重新发送到我的组件,该组件将通过阻止 UI 来响应 isLoading)。同时,我想要一个从服务器保存/重新获取的效果。当效果完成时,它将使用 isLoading = false 将对象分派回存储,我的 UI 将通过更新其字段并解锁 UI 来响应。

如何同时实现effect和reducer,并保证它们返回的顺序?或者有更好的模式可以使用吗?

angular ngrx-store ngrx-effects
1个回答
0
投票

如何同时实现effect和reducer,并保证它们返回的顺序?或者有更好的模式可以使用吗?

保证执行顺序:https://github.com/ngrx/platform/issues/162Effects 总是在所有减速器之后执行。

您所描述的流程非常好。我个人更喜欢具有

status
等可能值的属性
'loading' | 'loaded' | 'error' | ...
,但简单的布尔属性
isLoading
也可以。

© www.soinside.com 2019 - 2024. All rights reserved.