我有一个表单,在提交时我发送一个被效果捕获的 Action 。然后效果会进行 http 调用。我想知道在该操作完成/失败后我将如何执行以下操作:
- 操作完成后显示成功消息
- 重置所有字段,为下次使用表单做好准备
- 在操作失败后显示错误
我知道我可以重新调度一个操作,以使用多个标志 success
、error
等填充商店。但是,重置表单可能会通过调用功能。订阅商店并在子进程中调用相关的重置函数是否可以接受?就好像我希望组件能够像效果一样监听操作。
最佳答案
如果你的效果休息不影响商店,而只应该显示通知 - 那么我会说两种方法:
1) 按照您自己的建议在组件中注入(inject) 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();
}
}
关于javascript - 使用 NGRX/@Effects 处理表单状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831571/