【发布时间】:2020-06-09 01:52:10
【问题描述】:
目前,在我使用 NgRx 的项目中,I have a facade 包含一些功能:
LoadMyData()
{
dispatch(MyActions.LoadMyDataAction({ SomeDependentData }))
}
我也有
myDependentData$ = this.store.pipe(
select(MySelectors.GetMyData)
);
从myDependentData$ 获取值并将值传递给SomeDependentData 的正确方法是什么?或者这个设计应该有一些改进?
我的一位同事说我应该实现一个效果,它可以捕获我的操作并解析选择器,然后将解析后的值提供给同一个操作,这种方法可能/好/坏吗?
【问题讨论】:
-
我会在没有负载的情况下调度 LoadMyDataAction() 并在减速器级别解决依赖关系。
-
谢谢。所以在这个级别应该没有依赖,而是让reducer来做粘合?
-
这是灰色区域。您可能会争辩说这是一个副作用,因此您应该使用@ngrx/effects,但是根据设计效果应该只关心从服务器获取外部数据。
-
另一方面,您已经在实现外观模式,它已经保存了您需要的依赖数据。只要您不在组件级别执行此操作,就可以了。如果代码中有太多抽象,可读性和可维护性就会受到影响。