Angular ngrx从存储中选择值-如果值为空,则填充值

Angular ngrx从存储中选择值-如果值为空,则填充值,angular,ngrx,ngrx-effects,Angular,Ngrx,Ngrx Effects,角度5,NGRX 5 当我的应用程序首次加载时,我的应用商店中有一个空列表。这是我的应用程序中多个组件使用的列表 我要做的是从商店中选择列表: this.terminals$ = this.store$.select(...); 如果列表为空,我希望使用操作/效果填充列表: this.store$.dispatch(new TerminalActions.GetTerminals()); 是否可以在选择中执行此操作 i、 e.调用选择,如果列表为空,调用效果填充列表 我希望在select中执

角度5,NGRX 5

当我的应用程序首次加载时,我的应用商店中有一个空列表。这是我的应用程序中多个组件使用的列表

我要做的是从商店中选择列表:

this.terminals$ = this.store$.select(...);
如果列表为空,我希望使用操作/效果填充列表:

this.store$.dispatch(new TerminalActions.GetTerminals());
是否可以在选择中执行此操作

i、 e.调用选择,如果列表为空,调用效果填充列表


我希望在select中执行此操作,以便我使用此列表的每个组件都可以调用select,而不必运行操作来填充列表。

您可能不喜欢此答案,但
选择器是并且应该保持纯净(输入、输出、无副作用)。因此,选择器不应分派操作


如果您不想重复此逻辑或分派这些操作,可以查看路由器防护。更多信息请参见Todd的座右铭。根据您的实施情况,这可能会“冻结”导航,直到商店中有可用的数据。

您可以查看此处发布的技术:好的,谢谢,我没有听说选择器应该是纯的。好消息