【问题标题】:Handling form state with NGRX / @Effects使用 NGRX / @Effects 处理表单状态
【发布时间】:2017-03-16 10:35:09
【问题描述】:

我有一个表单,在提交时我调度了一个被效果捕获的动作。然后效果会进行 http 调用。我想知道在此操作完成/失败后我将如何执行以下操作:

  • 操作完成后显示成功消息
  • 重置所有字段以供下次使用表单时使用
  • 在操作失败后显示错误

我知道我可以重新调度一个动作来用几个标志successerror 等填充商店。但是,重置表单可能会通过调用一个函数来完成。订阅商店并在孩子中调用相关的reset 函数是否可以接受?就好像我希望组件能够像效果一样聆听动作。

【问题讨论】:

    标签: javascript angular ngrx ngrx-effects


    【解决方案1】:

    如果您的 effect-rest 不影响商店,而只应显示通知 - 那么我会说两种方法:

    1) 按照您自己的建议在组件中注入 Actions

    class SomeComponent {
        constructor(actions: Actions) {
            actions.ofType(SOME_EVENT)
                .do(myThing)
                .takeUntil(componentIsDestroyed)
                .subscribe();
        }
    }
    

    2) 或者根本不采用效果和操作方式,只需调用一个简单的服务方法:

    class SomeComponent {
        constructor(myService: CoolService) {
        }
    
        onClick(): void {
            mySevice.makeRequest()
                .do(myThing)
                .subscribe();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 2019-07-24
      • 2018-05-15
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      相关资源
      最近更新 更多