首页 > 解决方案 > distinctUntilChanged:旧值始终为空

问题描述

我不擅长介绍,所以让我们直接切入正题:

我通过使用ngRedux.select. 在我使用distinctUntilChanged带有自定义比较功能的管道之后。但是,在这个函数内部,旧值始终是null,无论它被调用的频率如何。

此外,当我distinctUntilChanged在经过一些解析(这是原始计划)之后将其放在管道中时,它会再次返回相同的值:第一个通过 observable 的值。不知何故,我觉得我完全误解了这个运算符,但我按照文档建议的方式使用它。

这是我正在使用的完整代码:

this.ngRedux.select((store: RootDomain) => getValue(() => {
  const localContext = store.core.context[contextUuid];
  const globalContext = store.core.context[GLOBAL_CONTEXT_KEY];
  const context = Object.assign({}, globalContext, localContext);
  return context[key];
})).pipe(
  distinctUntilChanged((x, y) => {
    console.log('OLD: ', x);
    console.log('NEW: ', y);
    return isEqual(x, y);
  })
);

我还尝试简单地一直返回 true 以查看是否有任何变化(当然没有)。x将始终记录在null这里。请帮我理解这个运算符!

标签: reduxrxjs

解决方案


推荐阅读