2

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

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

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

4

1 回答 1

2

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

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();
    }
}
于 2017-03-16T14:03:46.680 回答