Магазин NgRx не изменяет значение, если предыдущее и текущее значение совпадают - PullRequest
0 голосов
/ 06 мая 2019

Я использую NgRx Store, я подписываюсь на изменения, чтобы сохранить функцию. Магазин не обнаруживает изменений, когда предыдущие и текущие значения совпадают.

this.rootStore.pipe(select(someState.getStatus)).subscribe(someValue => {
      console.log(someValue);
    });

onLoad: someValue = 1;
OnAction 1 => onStateChanged: someValue = 2;
OnAction 2 => onStateChanged: someValue = 2; (this action is reported but do not record it with above subscription).

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Это предназначено, селектор запоминается.Он будет выполняться только при изменении его входных параметров по соображениям производительности.

Брэндон недавно выступил на ng-conf с докладом о селекторах, которые я настоятельно рекомендую Построение подчиненных состояний с селекторами NgRx |Брэндон Робертс

0 голосов
/ 07 мая 2019

Когда используется select, то, что он делает за сценой, это просто map + distinctUntilChanged.

Таким образом, если ваше значение - число, и вы обновляете свой магазин тем же номером, оно не сработает снова.

...