Обновление, наблюдаемое при изменении массива в хранилище NGRX - PullRequest
0 голосов
/ 08 декабря 2018

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

Это мой код:

 this.store.select<any[]>(getConnections(Id))
                .takeUntil(this.onDestroy$).subscribe(connections => {
                    this.selectDataStream.next(connections);
                });

Селектор:

export const getConnections = (id) => createSelector(selectFinderResults, entities => {
    return entities[id].connections;
});

Редуктор:

 case LOAD_INTEGRATOR_CONNECTIONS_SUCCESS: {
          let payload = (action as LoadConnectionsSuccessAction).payload;
          let integratorId = (action as LoadConnectionsSuccessAction).integratorId;

          if (payload) {

              const integratorModel = state.connectorresults[integratorId];

              const updatedstate = {
                  ...state,
                  connectorresults: {
                      ...state.connectorresults,
                      [integratorId]: {
                          ...integratorModel,
                          connections: payload
                      }
                  },
                  searchconnectorresults: {
                      ...state.searchconnectorresults,
                      [integratorId]: {
                          ...integratorModel,
                          connections: payload
                      }
                  }
              };

              return {
                  ...updatedstate
              };
          }


      }

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

...