通过组件输出在 ngrx 存储之外触发副作用



我有一个带有模态的模块,我在其中做一些表单工作,模态有它很小的特征存储。

当我完成工作(触发器:成功保存(时,我需要触发一个输出事件,以便我的上下文(包装我的模态的组件(可以关闭模态。我无法通过经典操作 - 上下文不知道我的操作,只能响应我的组件上的输出。

所以我现在拥有的是这个:

@Component MyComponent {
@Output() closeModal = new EventEmitter();
constructor(private store: Store<MyState>, private actions: Actions) {
// Here I subscribe to actions. Is there another way to do this?
this.actions.pipe(
ofType(actionTypes.SaveSuccess),
tap(() => this.closeModal.emit(),
);
}
}

有没有更好的方法可以做到这一点? 将操作流导入组件似乎是错误的,我想避免为此向我的状态接口添加新键。

编辑:为了澄清,我想根据一些 ngrx 操作在我的组件上触发一个输出事件。

侦听组件中的操作流确实有一个用例。一开始可能会觉得很奇怪,但我看不出有什么不对。我们还将在 ngrx.io 文档中添加这方面的示例 - 请参阅 GitHub 上的问题。

将来您可以使用@ngrx/component

我使用 @ngrx/effects 来处理对话框流,但我不确定它是否适合您的用例。有关示例以及如何执行此操作的详细信息,请参阅开始使用 ngrx/效果。

最新更新