我有一个包含操作、效果、减速器和选择器的商店。我在屏幕上有一个组件,该组件代表一个商店对象,通过选择器获取。
我认为,我想做的是 1 个行动做 2 件事。当用户更新对象时,我想调度一个操作来更新存储对象,以将 isLoading 属性设置为 true(这将重新发送到我的组件,该组件将通过阻止 UI 来响应 isLoading)。同时,我想要一个从服务器保存/重新获取的效果。当效果完成时,它将使用 isLoading = false 将对象分派回存储,我的 UI 将通过更新其字段并解锁 UI 来响应。
如何同时实现effect和reducer,并保证它们返回的顺序?或者有更好的模式可以使用吗?
如何同时实现effect和reducer,并保证它们返回的顺序?或者有更好的模式可以使用吗?
保证执行顺序:https://github.com/ngrx/platform/issues/162Effects 总是在所有减速器之后执行。
您所描述的流程非常好。我个人更喜欢具有
status
等可能值的属性 'loading' | 'loaded' | 'error' | ...
,但简单的布尔属性 isLoading
也可以。