NGRX/data entity getAll объединяет старые данные с новыми вместо обновления
Я пытаюсь использовать ngrx-data-lab в качестве примера для своего проекта.
Вот стек проекта, который я использовал.
Я не могу использовать фактический URL-адрес сервера, который использую. URL принадлежит моей компании. Но происходит то, что сервер возвращает в приложение случайно сгенерированные данные. Проблема в том, что объекты в магазине не заменяются, а складываются. Каждый раз, когда я обновляю страницу героев, сервер приносит новые данные и объединяет их со старыми данными.
В entity-store.module.ts я изменил корневой каталог defaultDataServiceConfig и 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 ответ
Виноват. После того, как несколько раз воссоздал мой проект. Я обнаружил, что getAll всегда объединяет локальные и удаленные объекты. чтобы заменить объекты, вы должны использовать load.
получить все
/**
* 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);
}
Загрузить
/**
* 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);
}