javascript - 使用 NGRX/@Effects 处理表单状态

标签 javascript angular ngrx ngrx-effects

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

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

我知道我可以重新调度一个操作,以使用多个标志 successerror 等填充商店。但是,重置表单可能会通过调用功能。订阅商店并在子进程中调用相关的重置函数是否可以接受?就好像我希望组件能够像效果一样监听操作。

最佳答案

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

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/

相关文章:

javascript - 从 JSON 中提取数字时返回 NAN

c# - 将 Div Id 设置为隐藏字段的值?

angular - 拖放图片上传,angular 4

angularjs - 'Content-Type' : 'application/x-www-form-urlencoded do in http post method 是什么

当 Http 完成以随后运行另一个函数时,Angular 2 发出

css - 与 SCSS 共享 Angular 5 变量

javascript - 动态循环 json 数据数组时不显示 ID(标题和值)

javascript - 如何调用使 Angular Service 同步?

angular - ngrx/store 状态未在调用的 reducer 函数中更新

javascript - 将文件名和文件类型放在一个数组中