javascript - ngrx - 一旦分派(dispatch)的操作成功更新商店,如何执行操作?

标签 javascript angular redux rxjs ngrx

我正在尝试在我使用 @ngrx/store 的 Angular 应用程序中实现撤消操作。我想要做的是分派(dispatch) UNDO 操作,然后一旦操作被处理,数据就被 reducer 更新并通过存储推送,我想用更新的数据做一些事情。

这就是我目前正在尝试实现这一目标的方法。基本上,因为records$来自BehaviourSubject,所以我最初会在订阅时获得一个值。然后我调度该操作并等待更新完成。一定有更好的方法,对吧?

undoRecords() {
    let count = 1;
    // The records$ observable comes from the ngrx store
    let obs = this.records$.take(2).subscribe(records => {
        if(count == 1) {
            this.store.dispatch({type: UNDO_RECORDS, payload: undefined}); // this will change the records 
            count++;
        }
        else {
            this.someService.doSomething(records);
        }
    });
}

最佳答案

我通常做的是三个 Action : Action 、 Action 成功、 Action 错误。

ACTION 会触发实际操作,如果您有兴趣跟踪进度,还会更改商店中的状态 (inprogress=true)。

ACTION_SUCCESS ,将状态“进行中”设置为 false。并更新实际数据。

您可以监控进行中的状态,并且您将知道任务何时完成。

关于javascript - ngrx - 一旦分派(dispatch)的操作成功更新商店,如何执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46476651/

相关文章:

javascript - 如何将函数应用于所有具有 border-radius 属性的元素

javascript - 从应用程序 FB.logout() 而不是 facebook 注销用户

javascript - AJAX打开不接受Servlet

javascript - 为 Shiny 应用程序添加 'Calculation In Process' 指示器

angular - 如何使用 Angular 7覆盖 ionic 4中的 ionic 后退按钮 Action

javascript - 无法使用 selenium web-driver python 从自动完成下拉列表中选择多个选项

css - Angular 组件元素在 ie11 中并不总是可设置样式

javascript - 修改嵌套的 redux 状态而不发生变异

reactjs - React Hooks 和 React-Redux 连接 : What is the best practice to make them work together?

reactjs - 在没有反应路由器的情况下以编程方式重定向到 URL