繁体   English   中英

Angular ngrx 效果

[英]Angular ngrx Effects

使用 ngrx,如果我调度一个试图将 store 的 state 设置为 store 中已经包含的值的 action,那么显然状态没有变化。

但是,仍然会调用等待该操作的任何效果。 如果操作没有导致任何更改,是否有标准方法可以防止效果运行?

在此操作的效果中,您可以添加带有选择器的 concatLatestFrom 以从商店中获取您感兴趣的最新值。它将已经从那里的减速器更新。 然后添加一个过滤器以按照您想要的方式比较操作主体和此值。 具有适当检查的过滤器将停止进一步处理该操作。

例如

ofType(ProductDetailPage.loaded),
concatLatestFrom(() => this.store.select(selectProducts)),
filter(([{ payload }, products]) => !!products[payload.sku])

上面的示例来自这篇文章,其中包含 ngrx 效果的最佳实践。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM