【问题标题】:Ngrx update reducer if component is on the page如果组件在页面上,Ngrx 更新减速器
【发布时间】:2017-02-27 17:46:04
【问题描述】:

我在一个页面上有两个组件,一个更新用户表单和一个事件历史记录。它们由两个 reducer(用户和事件)表示。一旦用户更新,我想更新商店中的事件列表(通过调用 API)。但是,仅当事件组件在页面上时才应更新事件。

实现这一目标的最佳方法是什么?我喜欢这个想法的唯一解决方案是在表单/事件组件的父级中有一个成功处理程序,它调度一个被效果捕获的动作,然后刷新事件列表。我希望这是我可以完全通过效果实现的东西,但我显然不知道该组件是否在页面上,并且我还需要访问路由参数。有没有人有更好的解决方案或者可以看到这个解决方案的问题?

【问题讨论】:

  • 使用您的事件组件的ngOnInit 钩子向您的商店发送一个操作,该钩子在您的状态中设置一个canUpdate 标志。如果组件被销毁,请将canUpdate 标志再次设置为 false。

标签: javascript angular ngrx ngrx-effects


【解决方案1】:

通常,事件组件显示在屏幕上这一事实代表了“业务逻辑/流程”的某种部分,可能已经在 存储状态中表示强>。如果不是这种情况,您似乎需要以某种方式添加它并在您的 events 组件初始化 (ngOnInit) 并被销毁 (ngOnDestroy )。

一旦它成为商店的一部分,您就可以将其用作效果的一部分。

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多