differentUntilChanged: старое значение всегда null - PullRequest
0 голосов
/ 06 июня 2019

Я плохо знакомлюсь, поэтому давайте просто перейдем прямо к погоне:

Я получаю наблюдаемое из магазина редуксов, используя ngRedux.select. Сразу после того, как я использую канал с distinctUntilChanged с пользовательской функцией сравнения. Однако внутри этой функции старое значение всегда равно null, независимо от того, как часто оно вызывается.

Также, когда я помещаю distinctUntilChanged в более позднюю точку в трубе после некоторого анализа (который был первоначальным планом), он снова всегда будет возвращать одно и то же значение: первое, которое прошло через наблюдаемое. Почему-то мне кажется, что я совершенно не понимаю этого оператора, но я использую его так, как предлагает документация.

Вот полный код, который я использую:

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 здесь. Пожалуйста, помогите мне понять этого оператора!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...