javascript - 无需订阅即可获取 ngrx 选择器的当前值

标签 javascript angular redux rxjs ngrx

我以这种方式拥有我的ngrx状态

状态数据
state.dataArchived

我想将数据从 store.data 复制到 state.dataArchived。

selectedSchedulingsOnPopup$ = this.store.pipe(select(selectSchedulingsByBranch));
ngOnInit() {
  this.store.dispatch(new GetDirectionsOnGraph({}));
  this.selectedSchedulingsOnPopup$.subscribe(value => {
    this.selectedSchedulingsOnPopupValue = value;
    this.store.dispatch(new GetDirectionsOnGraph(this.selectedSchedulingsOnPopupValue));
  });
}

问题是当state.data更改,state.dataArchived也会改变

所以我想得到 state.data 的当前值不订阅它。

最佳答案

我不明白这个问题,但是如果您想在不订阅的情况下获得值(value),您可以将其转换为 promise 。

async ngOnInit() {
  const data = await this.store.pipe(select(selectorForData),
                               take(1)).toPromise();
}

请记住,以这种 promise 方式,它只会 react 一次并获取数据并继续。如果你想知道数据切片的变化,你必须订阅它,没有别的办法。

关于javascript - 无需订阅即可获取 ngrx 选择器的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59616038/

相关文章:

javascript - 单击子项时停止父项 onClick(React 或 vanilla JS)

html - 如何垂直对齐文本列表中的所有元素?

javascript - 单击路由器时调用 API

javascript - 使用 HOC(高阶组件)和 React-Redux 连接

javascript - null 之后将值设置为零

javascript - 创建预加载器页面

angular - 无法绑定(bind)到 'options',因为它不是 'p-dropdown' 的已知属性

angular - 如何在 Angular 7 中增加超过 2 分钟的 HTTP 请求超时?

javascript - 如何对这个 Redux thunk 进行单元测试?

javascript - 动态创建js函数