NGRX / сущность данных getAll объединяет старые данные с новыми вместо обновления - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь использовать ngrx-data-la b в качестве примера для моего проекта.

Вот пример stackblitz проекта, который я использовал.

Я не могу использовать фактический URL-адрес сервера, который я использую. URL принадлежит моей компании. Но происходит то, что сервер возвращает случайно сгенерированные данные в приложение. Проблема в том, что сущности в хранилище не заменяются, а складываются. Каждый раз, когда я обновляю страницу героев, сервер приносит новые данные и объединяет их со старыми данными.

В entity-store.module.ts Я изменил defaultDataServiceConfig root и URL-адреса Hero на моем сервере. getAll () работает, но, как я уже сказал, он объединяет данные со старым.

  root: 'api', // default root path to the server's web api

  // Optionally specify resource URLS for HTTP calls
  entityHttpResourceUrls: {
    // Case matters. Match the case of the entity name.
    Hero: {
      // You must specify the root as part of the resource URL.
      entityResourceUrl: 'api/hero/',
      collectionResourceUrl: 'api/heroes/'
    }
  },

Как заставить getAll заменить старые данные вместо их конкатенации?

1 Ответ

1 голос
/ 25 октября 2019

Мой плохой. После воссоздания моего проекта несколько раз. Я обнаружил, что getAll всегда объединяет локальные и удаленные объекты. чтобы заменить сущности, вы должны использовать load.

getAll

  /**
   * Dispatch action to query remote storage for all entities and
   * merge the queried entities into the cached collection.
   * @param [options] options that influence merge behavior
   * @returns Observable of the collection
   * after server reports successful query or the query error.
   * @see load()
   */
  getAll(options?: EntityActionOptions): Observable<T[]> {
    return this.dispatcher.getAll(options);
  }

Load

  /**
   * Dispatch action to query remote storage for all entities and
   * completely replace the cached collection with the queried entities.
   * @param [options] options that influence load behavior
   * @returns Observable of the collection
   * after server reports successful query or the query error.
   * @see getAll
   */
  load(options?: EntityActionOptions): Observable<T[]> {
    return this.dispatcher.load(options);
  }
...